我有一个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
学习它.爱它.住它. 总结
以上是内存溢出为你收集整理的如何在PHP中将MySQL TIMESTAMP转换为日期时间全部内容,希望文章能够帮你解决如何在PHP中将MySQL TIMESTAMP转换为日期时间所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)