我会做出这样的假设规范是:
今天获得在23时00分〇〇秒在当前时区
代码应该是这样的:
mktime(23, 0, 0);
...或:
strtotime('today 23:00:00')
...或者只是:
strtotime('23:00:00')
Test code:
$time_zones = array(
'America/Chicago',
'GMT',
'Europe/Berlin',
);
foreach($time_zones as $time_zone){
date_default_timezone_set($time_zone);
$t1 = mktime(23, 0, 0);
$t2 = strtotime('today 23:00:00');
$t3 = strtotime('23:00:00');
echo date('r', $t1) . '/' . date('r', $t2) . '/' . date('r', $t3) . PHP_EOL;
}
Fri, 02 Dec 2016 23:00:00 -0600/Fri, 02 Dec 2016 23:00:00 -0600/Fri, 02 Dec 2016 23:00:00 -0600
Fri, 02 Dec 2016 23:00:00 +0000/Fri, 02 Dec 2016 23:00:00 +0000/Fri, 02 Dec 2016 23:00:00 +0000
Fri, 02 Dec 2016 23:00:00 +0100/Fri, 02 Dec 2016 23:00:00 +0100/Fri, 02 Dec 2016 23:00:00 +0100
请mktime()和strtotime()手册页找到进一步的细节。
具体时间是什么意思?你给的例子和你不想要的例子一样吗?请澄清。谢谢! – Ronald
如果您的位置在23:00,请修复unix机器的时钟。如果在您所在的位置7:46,则该功能运行良好。如果你想在当前的日期和其他任何时间,你可以做'(time()/ 86400)* 86400'去除时间,然后加上'23 * 60 * 60'。 – Holger
'echo(new DateTime(“23:00”)) - > format('r');' –