簡體   English   中英

PHP字符串超時一小時

[英]PHP String to Time off by one hour

我正在使用PHP日期和時間函數來創建我自己的日期之間的時間計算器,並且遇到了strtotime()函數的問題。

使用手動輸入的日期和時間時,請計算以下兩者之間的差:

20-02-1986 12:00:00和04-01-2014 19:31:13

返回看似正確的差值,第一次使用strtotime()轉換,第二次使用time()檢索。

但是,如果其中一個時間在EDT中,而另一個時間在EST中,則strtotime()函數似乎增加了一個小時,好像其中一個時間“回退”到EST一樣。

17-09-1986 12:00:00和04-01-2014 19:37:03

根據timeanddate.com,兩個日期之間的差應為:

861,521,823秒

但是下面的代碼我產生了這個:

861,525,423秒

額外需要3600秒(1小時)。 在17-09-1986 12:00:00上使用strtotime()時,PHP似乎可以在17-09-1986 11:00:00上使用。

<?php

date_default_timezone_set('America/New_York'); 

$today = time();

$pastDate = '17-09-1986 12:00:00'; 
$pastDate = strtotime($pastDate);

$timeAlive = $today - $pastDate;

?>

您應該將兩個日期都轉換為格林尼治標准時間,這樣才能正確進行區別。 PHP會檢測到兩個時間都在同一時區,因此它只是在做數學運算,而忽略了時區的變化。 首先轉換應該擺脫那個問題。

暫無
暫無

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

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