将mysql上的日期时间更新或恢复为w3c日期和时间格式

时间:2014-02-02 09:06:11

标签: php mysql datetime w3c

好吧所以我的表内容有一个update_time列,它是mysql DATETIME列格式。所以一个示例时间看起来像这样2014-01-25 08:03:17现在这已经工作正常了,但我正在尝试为搜索引擎构建一个站点地图,谷歌告诉我,我需要在W3C Date and Time format代表我的时间对我而言示例时间看起来像2014-01-25T08:03:17-5:00

所以在php中编写一个函数来为我做这个并在整个地方调用(如此)会非常简单

function convert_to_w3c($time){
        return str_replace(" ", "T", $time) . "-5:00";
}
然而,只是为了返回一个站点地图而调用这7000次以上似乎超级低效,因为我假设我不是唯一遇到这个问题的人,因为这些都是相当标准的方式来表示时间,所以他们有一些方法来修改一个mysql查询为我做这个或这是我最好的选择。

很抱歉,如果有人提出这个问题(我确实做了一些咕噜声,但是却找不到解决方案)

1 个答案:

答案 0 :(得分:1)

我没有看到7000次以上的问题,PHP应该能够合理地快速完成,并且我假设您正在缓存站点地图。就个人而言,我会使用内置的日期时间功能:

$datetime = '2014-01-25 08:03:17';
echo date(DATE_ATOM, strtotime($datetime));
// '2014-01-25T08:03:17+01:00'

+ 01适用于我的语言环境,您的时区将有另一个。

但是要回答你的问题,也可以在MySQL中进行 - 但它不会识别语言环境,因此你必须对-05:00部分进行硬编码。

SELECT DATE_FORMAT(datetime_field, '%Y-%m-%dT%H:%m:%s-05:00') FROM table LIMIT 1

另请注意,根据W3C标准,它应该是-05:00,而不是-5:00。