0

假设我有一个这种格式的日期

YearMonthDayHourMinuteSecond

所以例如

20130529051043

我需要从中减去一秒,直到它达到-3小时,直到它变成

20130529021043

我怎样才能使用 PHP 做到这一点?

4

3 回答 3

3
$current = \DateTime::createFromFormat("YmdHis", "20130529051043");
$end = \DateTime::createFromFormat("YmdHis", "20130529051043")->modify("-3 hours");

while ($current > $end) {
    $current = $current->modify("-1 second");
    // do your stuff
}

程序版本:

$current = date_create_from_format("YmdHis", "20130529051043");
$end = date_modify(date_create_from_format("YmdHis", "20130529051043"), "-3 hours");

while ($current > $end) {
    $current = date_modify($current, "-1 second");
    // do your stuff
}
于 2013-05-29T14:35:40.793 回答
0

您可以将DateTime类与方法sub()一起使用

于 2013-05-29T14:48:51.180 回答
0

你可以只使用strtotime。

$timestamp = strtotime("20130529051043");

如果您在三个小时前的时间之后,您可以减去 (60*60*3)

$three_hours_ago = $timestamp - (60*60*3);

并显示使用该date功能

echo date("Y-m-d H:i:s", $three_hours_ago), " is three hours before ", date("Y-m-d H:i:s", $timestamp);
于 2013-05-29T14:39:22.190 回答