如何在PHP中创建SQLite时间戳值

时间:2011-04-01 16:56:23

标签: php sqlite timestamp

我想在PHP中生成一个时间戳,然后将该值存储在SQLite中。

以下是代码:

  

$ created_date = date(“YYYY-MM-DD   HH:MM:SS”,时间());

以下是存储在DB中的内容(看起来不对): 11/21/0020 12:39:49 PM

如何更改代码以在SQLite中正确存储当前日期/时间

4 个答案:

答案 0 :(得分:8)

为什么不直接更新您的SQLite查询以使用date('now')reference

但是,在PHP中你应该可以使用

$created_date = date('Y-m-d H:i:s');

答案 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中的一个。