[英]How can I subtract a length of time from a datetime in PHP?
假设我有日期时间,例如2013-01-16-0900
。 如何减去一个时间长度(例如30分钟)?
它存储为与您发布的字符串完全相同的字符串,还是实际上是unix时间戳? 如果是字符串,则可以在其上运行strtotime
,然后从中减去1800
(秒),然后使用date()
将其转换回去。 那可能是最简单的方法。
这将从提供的时间戳中减去30分钟。
echo date( 'Y-m-d-Hi', strtotime( $timestamp ) - 30 * 60 );
在此示例中, $timestamp = '2013-01-16-0900'
。
对于使用PHP的内置DateTime模块和使用PHP的DateInterval模块添加或减去时间,我有强烈的偏好。 这使您可以执行相当复杂的日期/时间数学运算,并且仍然遵守时间规则。
另外值得注意的是DateTimeZone
时间示例
$dt = new DateTime("2013-01-16-0900", new DateTimeZone("America/Los_Angeles"));
$dt->setTimeZone("America/New_York");
$dt->sub(new DateInterval("PT30M"));
print $dt->format('Y-m-d H:i:s');
组装时间间隔字符串有一些学习曲线,但是一旦弄清楚了,就应该能够编写可重用的函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.