php 关于时间戳和计算

<?php

$date = "2017-07-25";
$newdate=date_create($date);
date_time_set($newdate,8,30);
$time = date_format($newdate,"Y-m-d H:i:s");
$d = strtotime($time);
$signIn =1500942660; 
$sign_time =date('Y-m-d H:i:s',$signIn);
$diff = intval($signIn) - $d;
var_dump('$time=>'.$time.'<br>$sign_time=>'.$sign_time.'<br>'.$diff);

结果为
string(71) "$time=>2017-07-25 08:30:00

$sign_time=>2017-07-25 00:31:00

-28740"

我在网上在线转时间戳时1500942660 对应的时2017-07-25 08:31:00

但为何这儿计算出来是2017-07-25 00:31:00 这个啊?

阅读 4.3k
6 个回答

时区问题
可以去php.ini里设置date.timezone = "PRC"
或在代码中设置date_default_timezone_set('PRC')

看下结果差了八小时。明显是时区的问题呀

图片描述

我这的确是 8:31, 可能使你没有设置时区的问题

时区啊老铁~
没发现差了8个小时么

中国是东八区,话说学地理应该就知道了吧,GMT 是“Greenwich Mean Time”的缩写,中文叫“格林尼治标准时间”,是英国的标准时间,也是世界各地时间的参考标准。中英两国的标准时差为8个小时,即英国的当地时间比中国的北京时间晚8小时。

看见8小时想都不用想是什么问题了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题