这是我当前的代码,似乎不能正常工作。
`echo date("h:i", 1*60*60) ; /* 1*60*60 mean 1 hours right */` 结果是03:00的时候应该是01:00。
这是哪里出了问题?
我想做这个
1-员工及时到来管理员选择它
2-员工请假作为时间戳保存在mysql中
现在我试着让管理员看看用户延迟了多少小时
用户日期时间默认延迟
user1 11-09-2011 09:10 :00 10分钟
user1 12-09-2011 08:00 09:00 -60分钟
发布于 2011-09-27 14:52:51
如果只输出date("Y-m-d H:i:s",0),就应该看到它不是1970-01-01 00:00:00。这是因为date受本地时区的影响。例如,我在GMT +3,date("Y-m-d H:i:s")给我1970-01-01 03:00:00。
因此,答案是您不在格林尼治时间范围内(可能在GMT+2中),而且date也受到它的影响。
更新
下面的代码输出1970-01-01 00:00:00,所以肯定是时区。
date_default_timezone_set('UTC');
echo date("Y-m-d H:i:s", 0);Hovewer,我在PHP的date手册中没有看到任何提到它的地方。
发布于 2011-09-27 14:49:52
日期()函数中的第二个参数必须是UNIX时间戳,从1970年1月1日开始传递秒。你需要根据这个值留出时间。
发布于 2011-09-27 14:50:20
嗯,如果我是对的,date()的第二个param是一个unix时间戳,所以从1970年开始的秒。你必须得到time(),并在其中添加60*60。
echo date("h:i", time()+60*60); // get current timestamp, add one hourhttps://stackoverflow.com/questions/7571113
复制相似问题