为什么要用php转换时间戳'2016-10-06t09:50:54.000z'

zlhcx6iw  于 2021-06-25  发布在  Mysql
关注(0)|答案(4)|浏览(282)

此代码:

$timestamp = 2016-10-06T09:50:54.000Z;

如何将时间戳分离或转换为日期和时间?
例子:

TimeStamp       2016-10-06T09:50:54.000Z
Date            2016-10-06
Jam(GMT +7)     04:55:45

请帮忙解决这个问题。谢谢

5ssjco0h

5ssjco0h1#

看看这个简短的例子:

<?php
$datetime = new Datetime('2016-10-06T09:50:54.000Z');
var_dump($datetime->format('Y-m-d H:i:s'));

输出明显是: string(19) "2016-10-06 09:50:54" 使用不同的格式字符串,您可以将日期时间对象转换为所需的任何表示形式。 'Y-m-d' 例如,将以国际格式给出日期。
请看一下优秀的文档:http://php.net/manual/en/class.datetime.php

4szc88ey

4szc88ey2#

$d = new DateTime('2016-10-06T09:50:54.000Z');
echo $d->format('Y-m-d\TH:i:s.u'); // 2016-10-06T09:50:54.000000
echo $d->format('Y-m-d'); // 2016-10-06

// convert to GMT+7 timezone
$d->setTimezone(new DateTimeZone('GMT+7'));
echo $d->format('h:i:s'); //  04:50:54
vaqhlq81

vaqhlq813#

<?php
$timestamp = "2016-10-06T09:50:54.000Z";
$datetime = new Datetime('2016-10-06T09:50:54.000Z');
echo "Date".$datetime->format('Y-m-d')."<br>";
echo "Jam".$datetime->format('H:i:s');
?>
plupiseo

plupiseo4#

不太神秘:

<?php
$timestamp = '2016-10-06T09:50:54.000Z';
$dt = new DateTime($timestamp);
var_dump($dt);
$dt->setTimezone(new DateTimeZone('Asia/Jakarta'));
var_dump($dt);
object(DateTime)#1 (3) {
  ["date"]=>
  string(26) "2016-10-06 09:50:54.000000"
  ["timezone_type"]=>
  int(2)
  ["timezone"]=>
  string(1) "Z"
}
object(DateTime)#1 (3) {
  ["date"]=>
  string(26) "2016-10-06 16:50:54.000000"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(12) "Asia/Jakarta"
}

与字符串不同的是,为正确的日期指定格式很简单。
我不知道什么是时区堵塞,但我建议你指定一个城市,这样你就可以考虑到夏令时(我用过) Asia/Jakarta 在我的示例代码中,可以在“支持的时区列表”中找到完整的列表。仅仅依靠utc偏移量,比如 +7 可能会使您的代码在夏季不可靠。

相关问题