我正在向twitter API提出请求,我想从php中提取日期并存储在mysql中。有人知道怎么做吗?
我从结果中得到的时间和日期是这个...... created_at“:”星期四,2012年7月26日22:16:59 +0000“
谢谢
答案 0 :(得分:2)
在PHP端使用strtotime()
,在MySQL端使用FROM_UNIXTIME()
。
所以基本上你的代码基本上可能是这样的:
$twitter_timestamp = 'Thu, 26 Jul 2012 22:16:59 +0000';
$php_time = strtotime($twitter_timestamp);
$query = 'INSERT INTO `some_table` VALUES ("' . $php_time . '");';
以上假设您将时间戳存储在具有正确类型(TIMESTAMP
)的列中。要详细了解TIMESTAMP
,DATE
和DATETIME
之间的差异,请参阅此文档页面:MySQL Documentation: The DATE, DATETIME, and TIMESTAMP Types。
如果您希望以不支持时区的方式存储时间戳(除TIMESTAMP
以外的任何内容而不包括时区信息),您需要在PHP端形成表示时间戳的字符串:
$twitter_timestamp = 'Thu, 26 Jul 2012 22:16:59 +0000';
$php_time = strtotime($twitter_timestamp);
// Optionally set local timezone:
date_default_timezone_set('America/Los_Angeles');
$php_timestamp = strftime('%T', $php_time); // will give "%H:%M:%S" timestamp
$query = 'INSERT INTO `some_table` VALUES ("' . $php_timestamp . '");';
注意,date_default_timezone_set()
调用是可选的 - 如果您想要某个特定时区的时间,则不同于当前时间。以上假设您希望时间戳采用“HH:MM:SS
”形式。