我想在PHP中生成一个时间戳,然后将该值存储在SQLite中。
以下是代码:
$ created_date = date(“YYYY-MM-DD HH:MM:SS”,时间());
以下是存储在DB中的内容(看起来不对): 11/21/0020 12:39:49 PM
如何更改代码以在SQLite中正确存储当前日期/时间
答案 0 :(得分:8)
答案 1 :(得分:2)
我刚为自己的项目实现了这个..
我的解决方案是使用UTC时间格式officially specified for the web: RFC3339。 您可以使用以下任何PHP time format constants:
DATE_RFC3339
DATE_W3C
DATE_ATOM
示例:强>
$sqlite_timestamp = date(DATE_RFC3339);
echo "My SQLite timestamp = ".$sqlite_timestamp;
最好的部分是与日期顺序对应的字母数字顺序,因此您可以在日期字段上使用ORDER BY
SQL语句!
答案 2 :(得分:0)
如何检查存储的值是多少?另外,数据库中列的数据类型是什么?您是否知道SQLite is typeless,所以所有值都存储为字符串或整数?
答案 3 :(得分:0)
$created_date = date('Y-m-d H:i:s');
echo $created_date ."<br />\n";
$created_date = date('l, F jS, Y - g:ia');
echo $created_date ."<br />\n";
$created_date = date('n/j/y H:i:s');
echo $created_date ."<br />\n";
$created_date = date('r'); // RFC 2822 formatted date
echo $created_date ."<br />\n";
$created_date = date('c'); // ISO-8601 formatted date
echo $created_date ."<br />\n";
输出可能是:
2011-04-01 19:33:40
Friday, April 1st, 2011 - 7:33pm
4/1/11 19:33:40
Fri, 01 Apr 2011 19:33:40 +0200
2011-04-01T19:33:40+02:00
请注意date()函数取决于PHP配置中设置的默认时区。您始终可以使用echo date_default_timezone_get();
对其进行测试,或者按date_default_timezone_set('TIMEZONE_IDENTIFIER');
进行设置,其中TIMEZONE_IDENTIFIER是the list of supported timezones中的一个。