2017-05-13 101 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