Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP中的Date函数总是将日期延迟一天_Javascript_Php_Date_Php 5.6 - Fatal编程技术网

Javascript PHP中的Date函数总是将日期延迟一天

Javascript PHP中的Date函数总是将日期延迟一天,javascript,php,date,php-5.6,Javascript,Php,Date,Php 5.6,我的情况是总是把日期推迟一天。 例如,我有一个值-243219600,它与日期1962年4月18日 过了一会儿 date('d/m/Y', -243219600); 输出为: 17/04/1962 -243219600从1970年1月1日00:00:00 UTC开始的秒在javascript中是 你得到了正确的日期 检查PHP的时区,将其设置为与计算机相同(因为您使用javascript)。日期()的输出取决于配置的时区。如果添加时间和时区,您可以看到它。就我而言,是CET: echo da

我的情况是总是把日期推迟一天。 例如,我有一个值
-243219600
,它与日期1962年4月18日

过了一会儿

date('d/m/Y', -243219600);
输出为:

17/04/1962
-243219600从1970年1月1日00:00:00 UTC开始的秒在javascript中是
你得到了正确的日期

检查PHP的时区,将其设置为与计算机相同(因为您使用javascript)。

日期()的输出取决于配置的时区。如果添加时间和时区,您可以看到它。就我而言,是CET:

echo date('d/m/Y H:m:i T', -243219600);
//prints: 18/04/1962 00:04:00 CET
带有
date()的解决方案
如果希望
date()
使用
UTC
,请使用:

输出 (你看,因为UTC是午夜前一小时,所以日期取决于时区)

带有
日期时间的解决方案
DateTime
类如果由Unix时间戳构造,则始终使用UTC:

从:

注: 当
$time
参数是UNIX时间戳(例如@946684800)或指定时区(例如2010-01-28815:00:00+02:00)时,将忽略
$timezone
参数和当前时区

因此,您也可以使用以下代码:

echo (new DateTime('@-243219600'))->format('d/m/Y');

当我尝试你的代码时,我得到了正确的
18/04/1962
作为输出。我得到了第17个-我使用UTC。特别是
$dt=new DateTime()$dt->setTimestamp(-243219600);echo$dt->format('r')我得到了1962年4月17日星期二23:00:00
。所以,非常接近18号,但不太接近。@JitendraPurohit你能告诉我你使用的时区吗?我仍然得到1962年4月17日,应该是1962年4月18日不,不应该。UTC是1962年4月17日23:00:00。
new DateTime('@'.strotime('+1天','@-243219600')显示正确的日期
 17/04/1962 23:04:00 UTC
echo (new DateTime('@-243219600'))->format('d/m/Y');