【发布时间】:2010-06-16 11:37:48
【问题描述】:
如何将这个时间增加 30 秒?
$time = date("m/d/Y h:i:s a", time());
我不知道该怎么做,因为它显示了很多不同的时间单位,而我只想添加 30 秒。
【问题讨论】:
如何将这个时间增加 30 秒?
$time = date("m/d/Y h:i:s a", time());
我不知道该怎么做,因为它显示了很多不同的时间单位,而我只想添加 30 秒。
【问题讨论】:
$time = date("m/d/Y h:i:s a", time() + 30);
【讨论】:
如果您使用的是 php 5.3+,请查看 DateTime::add operations 或 modify,真的比这容易得多。
例如:
$startTime = new DateTime("09:00:00");
$endTime = new DateTime("19:00:00");
while($startTime < $endTime) {
$startTime->modify('+30 minutes'); // can be seconds, hours.. etc
echo $startTime->format('H:i:s')."<br>";
break;
}
【讨论】:
使用 strtotime 怎么样?代码将是:
strtotime( '+30 second' );
【讨论】:
$time = date("m/d/Y h:i:s a", time() + 30);
//or
$time = date("m/d/Y h:i:s a", strtotime("+30 seconds"));
【讨论】:
一般:
$add_time=strtotime($old_date)+30;
$add_date= date('m/d/Y h:i:s a',$add_time);
【讨论】:
见 mktime:
mktime (date("H"), date("i"), date("s") + 30)
http://www.php.net/manual/en/function.mktime.php
应该做你想做的。
【讨论】:
date("s") 返回 50,那么它将是 50 + 30 = 80,这不是“时间”中的有效秒数。最好只使用 time() + 30 (更合乎逻辑)。
$time = date("m/d/Y h:i:s", time());
$ts = strtotime($time);
$addtime = date("m/d/Y h:i:s", mktime(date("h", $ts),date("i", $ts),date("s", $ts)+30,date("Y", $ts),date("m", $ts),date("d", $ts));
将是上述所有内容的更解释版本。
【讨论】:
你可以用不同的视角来解决这个问题。首先,您可以创建一个current datetime 对象。然后,您创建一个future datetime,它比您给定的日期时间晚 30 秒。所以归结为以下几点:
(new Future(
new Now(),
new NSeconds(30)
))
->value();
如果您想以您提到的特定格式输出,可以使用
(new ISO8601Formatted(
new Future(
new Now(),
new NSeconds(30)
),
'm/d/Y h:i:s a'
))
->value()
【讨论】: