簡體   English   中英

為什么要用PHP轉換時間戳'2016-10-06T09:50:54.000Z'

[英]Why convert Timestamp '2016-10-06T09:50:54.000Z' with php

此代碼:

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

如何將時間戳與時間戳分開或轉換為日期和時間?

例如:

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

請幫助解決此問題。 謝謝

看一下這個簡短的例子:

<?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"

使用不同的格式字符串,您可以將日期時間對象轉換為所需的任何表示形式。 'Ym-d'將以國際格式給出日期。

看看很棒的文檔: http : //php.net/manual/en/class.datetime.php

<?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');
?>
$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

沒有什么神秘之處:

<?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"
}

與字符串不同,將格式賦予適當的日期是微不足道的

我不知道Jam是什么時區,但是我建議您分配一個城市,以便您可以算出DST(我在示例代碼中使用了Asia/Jakarta ,完整列表可以在Supported Timezones中找到 )。 僅依靠+7類的UTC偏移量可能會使您的代碼在夏季不可靠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM