我试图找到相当于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
答案 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)
你可以这样做:
select timediff( now(), convert_tz(now(), 'America/Los_Angeles', 'Asia/Singapore'));
https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_convert-tz
https://dev.mysql.com/doc/refman/5.5/en/date-and-timefunctions.html#function_timediff
http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_now