我正在使用xampp服务器并且我已将时区设置为我当前的时区。我正在尝试将日期和时间插入到我的数据库中,但是在获取日期功能方面存在一些问题。
我目前的时间:26-07-2014 10:15:03 AM。
当我从php date('d-m-Y , h:m:s');
获取约会时,它正在向我显示正确的时间差异6分钟。
date('d-m-Y , h:m:s');
的结果: 27-07-2014,10:07:32
当我从date("d-m-Y g:i:s A")
获取约会时,它会向我显示确切的时间。
date("d-m-Y g:i:s A");
的结果: 27-07-2014 10:14:32 AM
当我从php echo strtotime("now");
获得时间戳时,它距离工作时间只有五个小时。
echo strtotime("now");
的结果: 1406438072;
Ater转换: Sun,2014年7月27日05:14:32 GMT
当我将date('d-m-Y , h:m:s');
转换为时间戳时,它距离停留时间为5小时。
已转换date('d-m-Y , h:m:s');
的结果: 1406437652
转换后: Sun,2014年7月27日05:07:32 GMT
当我将date("d-m-Y g:i:s A");
转换为时间戳时,它又落后了五个小时。
已转换date("d-m-Y g:i:s A");
的结果: 1406438072
转换后: Sun,2014年7月27日05:14:32 GMT
我目前的时区是Asia/Karachi
。
问题: 任何人都能告诉我为什么当我将我的日期转换为时间戳时,我的时区落后5个小时,以及将日期转换为时间戳的正确解决方案是什么?
答案 0 :(得分:2)
您的格式/诊断PHP代码不正确。你有这个:
d-m-Y , h:m:s
^ ^
同样的代码也是不可能的:
date('d-m-Y , h:m:s')
...打印完全不同的结果:
6-07-2014 , 05:07:47
1406333267
所以我猜你的真实代码可能存在这个以及其他一些错别字。计算机非常挑剔:)
答案 1 :(得分:1)
你应该改变你的格式试试这个
<?php
date_default_timezone_set('Asia/Kolkata'); // for india
// you can set your timezone in above line
// date_default_timezone_set('Asia/Karachi'); // for pakistan
$date = date('d-m-Y g:i:s A')."\n";
echo $date;
$time = strtotime($date);
echo "\n".$time."\n";
echo "\n".date('d-m-Y g:i:s A', $time);
?>
输出:
26-07-2014 11:59:23 AM
1406375963
26-07-2014 11:59:23 AM
答案 2 :(得分:1)
这是时区的问题。尝试使用localtime()
功能。
或者可以使用函数date_timezone_set()
。
答案 3 :(得分:1)
我在租用的服务器上遇到问题,时间比我本地的时间少了两个小时。
所以我采取的措施是:
$new_time = date("Y-m-d H:i:s", strtotime('+2 hours'));
然后我只需要$new_time
我需要的地方。
像魅力一样。