1

我正在向 twitter API 发出请求,我想从 php 中的日期中提取时间并存储在 mysql 中。有人知道该怎么做吗?

我从结果中得到的时间和日期是 ...created_at": "Thu, 26 Jul 2012 22:16:59 +0000"

谢谢

4

1 回答 1

2

在数据库中存储时间戳

strtotime()在 PHP 端和FROM_UNIXTIME()MySQL 端使用。

所以基本上你的代码,简而言之,可能看起来像这样:

$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请参阅此文档页面:MySQL 文档:DATE、DATETIME 和 TIMESTAMP 类型DATEDATETIME

将时间存储为字符串

如果您想以不支持时区的方式存储时间戳(除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

于 2012-07-26T23:02:55.497 回答