使用php和sql处理日期和时间信息

发布于 2024-11-17 22:28:34 字数 146 浏览 0 评论 0原文

我正在构建一个程序,通过 twitter api 从推文中获取日期和时间信息,我现在的挑战是我需要弄清楚存储时间戳的最佳计划是什么:Fri Jul 16 16:55:52 + 0000 2010,进入mysql数据库,然后在存储后对数据库进行sql调用,按最近日期对它们进行排序

Im building a program that grabs date and time information from tweets through the twitter api, my challenge right now is I need to figure out what the best plan is to go about storing a timestamp like this: Fri Jul 16 16:55:52 +0000 2010, into a mysql database and then after they are stored making an sql call to the database ordering them by the most recent date

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

七秒鱼° 2024-11-24 22:28:34

您需要将 MySQL 字段的数据类型设为 DATETIME。要插入,您需要使用 strtotime() 将 Twitter 中的时间戳读取为 PHP 可读时间戳,然后使用 date() 函数将其转换为 mysql 格式。

例如

$mysqlDate = date('Y-m-d H:i:s', strtotime($dateFromTwitter));

You will want to make the data type on your MySQL field a DATETIME. To insert you need to read the timestamp from Twitter into a PHP -readable timestamp with strtotime(), then convert it to the mysql format with the date() function.

For Example

$mysqlDate = date('Y-m-d H:i:s', strtotime($dateFromTwitter));
几味少女 2024-11-24 22:28:34

将日期转换为有效的 mysql 日期时间

date('Y-m-d h:i:s', strtotime("Fri Jul 16 16:55:52 +0000 2010"));

然后需要引用并插入到表中:

$sql = "插入推文
(tw,daydate) 值 ('$tweet',
'$日期');"

其中 daydate 是 DATETIME 字段。

Turn the date into an valid mysql datetime

date('Y-m-d h:i:s', strtotime("Fri Jul 16 16:55:52 +0000 2010"));

That then needs quoting and inserting into your table:

$sql = "insert into tweets
(tw,daydate) values ('$tweet',
'$date');"

Where daydate is a DATETIME field.

◇流星雨 2024-11-24 22:28:34

使用 PHP 的 strtotime() 无疑是一个很好的方法,但我之前发现了使用 strtotime() 的问题。因此,也许您可​​能只想在 MySQL 中执行此操作,例如:

SELECT STR_TO_DATE(
    CONCAT(
        SUBSTRING('Fri Jul 16 16:55:52 +0000 2010', 1, 20),
        ' ',
        SUBSTRING('Fri Jul 16 16:55:52 +0000 2010', -4)
    ),
'%a %b %d %H:%i:%s %Y');

请注意,这样做时我忽略了时间戳的 +0000 部分。

希望这有帮助。

Using PHP's strtotime() is surely a nice way of doing this but I've found issues working with strtotime() earlier. So perhaps you may like to do this only in MySQL, like:

SELECT STR_TO_DATE(
    CONCAT(
        SUBSTRING('Fri Jul 16 16:55:52 +0000 2010', 1, 20),
        ' ',
        SUBSTRING('Fri Jul 16 16:55:52 +0000 2010', -4)
    ),
'%a %b %d %H:%i:%s %Y');

Please note that when doing so I've ignored the +0000 part of the time-stamp.

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文