2017-05-13 143 views
0

我使用的功能:比較javascript日期與PHP當前日期

var date = new Date();

在JavaScript

。它提供了以下輸出

"Sat May 13 2017 22:19:25 GMT+0500 (Pakistan Standard Time)"

現在,我將在URL和服務器端嵌入這個日期,我會收到這個日期。在服務器上,我有一個PHP腳本,現在在這個腳本中,我想比較從JavaScript客戶端收到的日期與當前的PHP時間,並檢查從JavaScript客戶端發送的日期時區和當前php日期時區之間的差異是否大於5分鐘或沒有。

+3

您應該改用unix時間戳。 –

+0

時間對比較重要嗎? –

+0

我也有日期時間戳帶JavaScript中的區域以毫秒爲單位這樣.....「1494688862301」.....所以我怎麼能比較這個在PHP? –

回答

0

您應該使用時間戳比較。

JS:

var timestamp = (new Date()).getTime(); // send this to your php 

PHP:

$timestampFromJs = intval($_GET["ts"]); // just made it up 
$ts = time() * 1000; // js timestamp is milliseconds 
if($ts - $timestampFromJs > 5000*60) ... 

更新:如果您需要時區安全比較:

JS:

var timestamp = (new Date()).getTime(); 

PHP:

$timestampFromJs = intval($_GET["ts"]); // just made it up 
$date_utc = new \DateTime("now", new \DateTimeZone("UTC")); 
$ts = $date_utc->getTimestamp() * 1000; // js timestamp is milliseconds 
if($ts - $timestampFromJs > 5000*60) ... 
+0

這是否也比較時區? –

+0

我現在添加了時區檢查。 – abeyaz

+0

我一直認爲時間戳 - 格林威治秒。我錯了嗎? – splash58