【问题标题】:Add time to datetime object with PHP使用 PHP 将时间添加到 datetime 对象
【发布时间】:2016-03-06 00:50:51
【问题描述】:

我有一个日期时间对象,我尝试使用 strtotime 函数为该对象添加 2 天(这是可选的,我愿意接受任何可行的解决方案)。

当我将 2 天添加到我的对象时,我得到一个时间戳:

$new_datetime = strtotime('+2 days' . date_format($datetime, 'd/m/Y h:i A'));

这不是问题,但我想使用以下代码循环修改日期时间对象的数量:

$datetimeArray[] = $datetime;
for ($i = 0; $i < $times; $i++){
    $datetimeArray[] = strtotime('+' . $interval . " " . $timeUnit .
                       date_format($datetimeArray[$i], 'd/m/Y h:i A'));
}

因为strtotime 在循环的第二次旋转时给了我一个时间戳,所以我会收到一条错误消息: date_format() expects parameter 1 to be DateTimeInterface, integer given

如何将我的代码修改为包含 datetime 对象或 timestamps 的数组?

【问题讨论】:

  • 时间戳很容易使用,因为它们代表自 1970 年 1 月 1 日以来的秒数。如果你想给时间戳加上 +2 天,你可以加上 2*24*60*60 秒时间戳!
  • @RiggsFolly:我在循环之前添加了一个日期时间对象。我认为这很明显,但我猜你没有 1.在开始回答之前先动脑
  • 回到你的朋友!我们不是千里眼我们只看到你向我们展示的并且只看到你向我们展示的
  • 现在向我们展示$times中的内容

标签: php datetime time timestamp strtotime


【解决方案1】:

您可以尝试将此行中的点更改为逗号,因为它是分隔 strtotime() 函数中的参数的逗号。

来自

$datetimeArray[] = strtotime('+' . $interval . ' ' . $timeUnit .
                   date_format($datetimeArray[$i], 'd/m/Y h:i A'));

$datetimeArray[] = strtotime('+' . $interval . ' ' . $timeUnit ,
                   date_format($datetimeArray[$i], 'd/m/Y h:i A'));

但除非 $times = 1 第二次通过你的 for 循环,否则不会有任何东西需要处理,它可能会崩溃。

【讨论】:

  • 当我将点改为逗号时出现以下错误:A non well formed numeric value encountered
猜你喜欢
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-06
相关资源
最近更新 更多