// It's better to set your time location, for example, in Iran.
date_default_timezone_set("Asia/Tehran");
$datetime = new DateTime(date());
// Subtract one hour
$interval = new DateInterval("PT1H");
$datetime->sub($interval);
// Format and echo the updated datetime
echo $datetime->format("H:i:s");
6条答案
按热度按时间7rtdyuoh1#
在我看来,这是更好的方式:
字符串
vfhzx4xs2#
strtotime会给予你日期的unix时间戳。从这个时间戳中减去你的小时:
字符串
如果调用
strtotime($date - 3600)
,就像获取-3600的时间(例如:strtotime(-3600)
),这是没有意义的,因为strtotime需要一个字符串作为第一个参数。qacovj5a3#
您可以:
字符串
希望有帮助
lxkprmvk4#
86400秒是一天,不是一小时。
strtotime()的输出是一个unix时间戳。3600秒之前是时间戳减去一小时。于是:
字符串
或者,根据$somestring的原始格式:
型
别忘了date_default_timezone_set()
6ovsh4lw5#
还没有人提供
DateTime
对象解决方案,所以我会。它是处理日期时间的最现代的方法,不需要任何分钟和秒的计算。我总是喜欢加入某种时区声明来使事情变得明确。日光节约时间通常与日期时间操作有关,但在这种情况下可能没问题。请随意修改您的案例的时区。
PHP手册链接:
代码(包括用于比较的格式化时间)Demo Link:
字符串
输出量:
型
oymdgrw76#
试试这个查询
字符串
使用DATE_ADD插入比当前时间小1小时的日期值。