MySQL DATE_FORMAT:格林威治时间格式的差异

时间:2016-03-03 15:46:59

标签: php mysql date datetime

我试图找到相当于PHP的“格林威治时间差(GMT)与小时和分钟之间的冒号示例:+ 02:00”MySQL的DATE_FORMAT函数的日期格式。

PHP示例:

<?php
   echo date('P');
   //+02:00

我有一个日期字段我正在尝试格式化为ISO 8601.我有大部分格式,但我错过了最后一部分是“与格林威治时间的差异”AKA“+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

2 个答案:

答案 0 :(得分:0)

我使用它将php和mysql设置为相同的时区

    $tz = 'UTC';
    date_default_timezone_set ( $tz);
    $now = new DateTime();
    $mins = $now->getOffset() / 60;
    $sgn = ($mins < 0 ? -1 : 1);
    $mins = abs($mins);
    $hrs = floor($mins / 60);
    $mins -= $hrs * 60;
    $offset = sprintf('%+d:%02d', $hrs*$sgn, $mins);
    define('DB_TIMEZONE', $offset);
    define('PHP_TIMEZONE', $tz);

答案 1 :(得分:0)