【问题标题】:Subtract one second from a given time从给定时间减去一秒
【发布时间】:2012-10-04 19:20:08
【问题描述】:

我想增加 1 天,然后从给定时间减去(减)1 秒。

我做到了:

$fromDate = date("Y-m-d", strtotime("2012-09-28")).' 00:00:00';
$date = strtotime(date("y-m-d H:m:s", strtotime($fromDate)) . " +1 day") - 1;
$toDate = date('Y-m-d H:m:s', $date);
echo $toDate;

但不是2012-09-28 23:59:59,而是返回2012-09-29 00:09:59

我做错了什么?

【问题讨论】:

  • 问题在于您的日期格式,部分“H:m:s”...您正在打印“小时月秒”

标签: php datetime time


【解决方案1】:

您在循环往复,而不是在代码中找到重点。这是我使用 DateTime 对象的解决方案:

$time = new DateTime("2012-09-28");
$time->modify("+1 day");
$time->modify("-1 second");

var_dump($time);

或者,如果您只需要一天的最后一秒,为什么不这样做:

$time = "2012-09-28";
$time .= " 23:59:59";

因为每天的秒数/分钟数/小时数不太可能发生变化。

【讨论】:

  • 修改函数不会改变对象。只需返回一个带有修改时间的新 DateTime 对象。
【解决方案2】:

如果我没听错的话,你只想要一天的最后一秒,对吧?

如果是这样,那么您可以:

$theDate = "2012-09-28";
$fromDate = $theDate." 00:00:00";
$toDate = $theDate." 23:59:59";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    相关资源
    最近更新 更多