我想弄清楚为什么php date()给我错误的时间,将实际时间设置为2小时。
<?php echo date("Y-m-d H:i:s"); ?>
这给出2011-01-01 03:14:04而不是2011-01-01 05:14:04。小时减少2。 我没有更改date()的时区,当用户访问该网站时,我希望时间也适合他们的时区。我怎样才能使用php工作?
答案 0 :(得分:2)
您必须使用date_default_timezone_set()或datetime对象,并且用户必须在某个选项菜单中设置自己的时区。
否则,PHP是一种服务器端语言,不知道它在用户端的时间。
您必须使用客户端语言JavaScript。您可以让它只是静态并显示当前用户系统时间,或者如果由于某种原因您需要花时间进入PHP,您可以使用一些类似AJAX的脚本来让JavaScript在页面加载时将时间发送到脚本中
答案 1 :(得分:2)
这是因为默认情况下,它显示您可以使用以下代码更改您所在地区的GMT时间
date_default_timezone_set("Asia/Bangkok");//set you countary name from below timezone list
echo $date = date("Y-m-d H:i:s", time());//now it will show "Asia/Bangkok" or your date time
答案 2 :(得分:1)
尝试设置时区:date_default_timezone_set或通过ini
更新:您无法为用户设置正确的日期。 Javascript可以处理它,但你必须依靠用户的系统来确定他/她的时间。
答案 3 :(得分:0)
//更改日期格式
$dateInfo = date_parse_from_format('m-d-Y', $data['post_date']);
$unixTimestamp = mktime(
$dateInfo['hour'], $dateInfo['minute'], $dateInfo['second'],
$dateInfo['month'], $dateInfo['day'], $dateInfo['year']
);
$data['post_date']=date('Y-m-d',$unixTimestamp);