Sonucu MySQLdatetime
tipi bir sütuna eklemek istiyorsam PHPdeki
date()` fonksiyonuna aktarmam gereken doğru format nedir?
Tarih("Y-M-D G:i:s")` deniyorum ama bu her seferinde sadece "0000-00-00 00:00:00" ekliyor.
Sorun, metinsel bir gösterim olan 'M'
ve 'D'
kullanmanızdır, MySQL 2010-02-06 19:30:13
biçiminde sayısal bir gösterim beklemektedir.
Dene: Sayısal eşdeğerleri kullanan date("Y-m-d H:i:s")
.
düzenleme: G
yi H
olarak değiştirdim, etkisi olmayabilir, muhtemelen 24 saatlik formatı baştaki 0'larla kullanmak istersiniz.
php'nin date()
manuel sayfasının yorumlarından:
<?php $mysqltime = date ("Y-m-d H:i:s", $phptime); ?>
39;Y' doğru - bu'tam bir yıl, ancak 'M' üç karakterli bir ay, 'm' ise iki haneli bir ay. Aynı sorun 'd' yerine 'D' için de geçerlidir. 'G' 1 veya 2 haneli bir saattir, 'H' gerektiğinde her zaman başında bir 0 vardır.
İşte size alternatif bir çözüm: PHP'de zaman damgası olarak tarih varsa, bunu PHP ile işlemeyi atlayın ve DB'nin `FROM_UNIXTIME' işlevini kullanarak dönüştürme işlemini yapmasına izin verin.
mysql> insert into a_table values(FROM_UNIXTIME(1231634282));
Query OK, 1 row affected (0.00 sec)
mysql> select * from a_table;
+---------------------+
| a_date |
+---------------------+
| 2009-01-10 18:38:02 |
+---------------------+