假设我有类似的日期时间2013-01-16-0900
。我怎样才能减去一段时间——比如 30 分钟?
问问题
91 次
3 回答
0
它是完全像您发布的那样存储为字符串,还是实际上是 unix 时间戳?如果它是一个字符串,你可以strtotime
在它上面运行,然后从中减去1800
(秒),然后用date()
. 这可能是最简单的方法。
于 2013-01-16T02:12:00.217 回答
0
这将从提供的时间戳中减去 30 分钟。
echo date( 'Y-m-d-Hi', strtotime( $timestamp ) - 30 * 60 );
$timestamp = '2013-01-16-0900'
在这个例子中。
于 2013-01-16T02:16:32.473 回答
0
我强烈倾向于使用 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');
组装时间间隔字符串有一些学习曲线,但是一旦你弄清楚了,你应该能够编写一个可重用的函数。
于 2013-01-16T03:07:24.167 回答