【发布时间】:2016-06-17 01:05:37
【问题描述】:
我正在尝试为 MySQL 的 DATE_FORMAT 函数找到相当于 PHP 的“与格林威治时间 (GMT) 的时差和分钟之间的冒号示例:+02:00”的日期格式。
PHP 示例:
<?php
echo date('P');
//+02:00
我有一个日期字段,我正在尝试将其格式化为 ISO 8601。我拥有大部分格式,但我错过了最后一部分,即“与格林威治时间的差异”又名“+00:00”。
MySQL 示例:
SELECT DATE_FORMAT(date, "%Y-%m-%dT%T) as date FROM table;
//returns 2016-03-03T16:03:01
//required 2016-03-03T16:03:01+00:00
文档链接:
http://php.net/manual/en/function.date.php
http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format
【问题讨论】:
-
可能值得检查这个 SO 问题,看看它是否有帮助:stackoverflow.com/questions/805538/… - 将
NOW()替换为给定的日期,它应该工作。 -
@CD001 我的日期字段将包含过去和未来的日期,将其与 UTC_TIMESTAMP() 进行比较会给我一个正确的答案吗?
-
嗯...好点;你很可能会得到像
GMT -123449232:00这样的胡言乱语……就我个人而言,我倾向于将数据库中的日期保留为UTC,并让应用程序根据时区来处理它;但我不确定你的最终目标是什么。 -
我正在从 MySQL 查询中生成报告,并且我希望日期保持与我的 PHP 程序使用 $datetime->format('c'); 输出它们的格式相同;在这种情况下,在 MySQL 中格式化数据似乎更方便。但这不是一个大问题,还有其他方法可以解决它。