这段代码怎么工作?什么是正确的代码

Sam*_*ver 0 php time date

这是我目前的代码似乎无法正常工作.

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 09:00 10分钟

user1 12-09-2011 08:00 09:00 -60分钟

J0H*_*0HN 5

如果输出只是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时区(可能是GMT + 2),并且date受到它的影响.

UPDATE

以下代码输出1970-01-01 00:00:00,因此它绝对是时区.

date_default_timezone_set('UTC');
echo date("Y-m-d H:i:s", 0);
Run Code Online (Sandbox Code Playgroud)

Hovewer,我在PHP的date手册中看不到任何提及它.

  • 实际上,`date("Ymd H:i:s")`(没有第二个参数)默认为当前时间(`time()`的值),而不是UNIX纪元. (2认同)