![](/img/trans.png)
[英]php strtotime with a future datetime returns a timestamp less than current timestamp
[英]Incorrect timezone and timestamp with PHP Datetime objects and strtotime
我的服務器時區是 UTC,但是當我創建 DateTime object 或使用 strtotime 將日期轉換為時間戳時,結果是錯誤的。
我做了一個簡單的代碼:
$date_init = '2020-07-25 13:00:00';
$dt = new DateTime( $date_init, new DateTimeZone( 'UTC' ) );
$timezone = date_default_timezone_get();
$strtotime = strtotime( $date_init . ' UTC' );
$timestamp = $dt->getTimestamp();
$date_final = $dt->format( 'Y-m-d H:i:s P e' );
當我回顯這些值時:
$date_init = 2020-07-25 13:00:00
$timezone = UTC
$strtotime = 1595700000
$timestamp = 1595700000
$date_final = 2020-07-25 13:00:00 -05:00 UTC
甚至時間戳也是錯誤的(1595700000 = 2020-07-25 18:00:00 UTC)(在線轉換器)。
預期結果是:
$timestamp = 1595682000
$strtotime = 1595682000
$date_final = 2020-07-25 13:00:00 +00:00 UTC
我不明白發生了什么,有人可以幫忙嗎?
PHP 版本:7.3.19
創建 DateTime object 時,提供時區作為第二個參數。
$date_init = '2020-07-25 13:00:00';
$dt = new DateTime( $date_init , new DateTimeZone("UTC"));
echo $dt->format('Y-m-d H:i:s P e');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.