加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

如何在PHP中将MySQL TIMESTAMP转换为日期时间

发布时间:2020-12-11 23:42:08 所属栏目:MySql教程 来源:网络整理
导读:我有一个MySQL数据库表,其中包含一个名为“timestamp”的列,一种时间戳,以及更新时CURRENT_TIMESTAMP和默认值CURRENT_TIMESTAMP的属性. 如果我向表中添加记录,指定其他值,但不指定时间戳,则会自动添加时间戳,如2016-12-28 17:02:26. 在PHP中,我使用以下查询

我有一个MySQL数据库表,其中包含一个名为“timestamp”的列,一种时间戳,以及更新时CURRENT_TIMESTAMP和默认值CURRENT_TIMESTAMP的属性.

如果我向表中添加记录,指定其他值,但不指定时间戳,则会自动添加时间戳,如2016-12-28 17:02:26.

在PHP中,我使用以下查询查询表

SELECT * FROM history WHERE user_id = 9 ORDER BY timestamp ASC

查询的结果保存到$rows中,我使用foreach创建一个数组,其中一些其他值已格式化.我正在尝试将时间戳格式化为英国式24小时日期时间:dd / mm / yy,HH:MM:SS.

我已经尝试了date()和strftime()函数,如下所示:

$formatted_datetime = strftime("%d %m %y  %H %M %S",$row["timestamp"]); 
$formatted_datetime = date("d/m/y,H:i:s",$row["timestamp"]);

这两个都导致以下通知和日期时间错误输出,如01 01 70 00 33 36:

Notice: A non well formed numeric value encountered in /home/ubuntu/workspace/pset7/public/history.php on line 20

我是PHP和MySQL的新手,到目前为止,我见过的所有其他问题或文档都没有成功地解决了执行此转换的问题.我不明白为什么strftime()不起作用,也不知道如何正确地执行此操作? 最佳答案 为此,OO(以及最灵活的)方式使用DateTime类并使用静态createFromFormat方法来实例化新的DateTime对象:

$new_datetime = DateTime::createFromFormat ( "Y-m-d H:i:s",$row["timestamp"] );

现在,您可以使用$new_datetime对象通过调用对象的format方法生成您想要的任何字符串表示:

echo $new_datetime->format('d/m/y,H:i:s');

要启动,你既然有了DateTime对象,你现在也可以进行任何转换方式(如移动时区或添加天数),比较(大于或小于另一个DateTime),以及各种时间计算(多少天/月/月)等……在这个和另一个DateTime之间).

日期时间:http://php.net/manual/en/class.datetime.php
学习它.爱它.住它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读