PHP日期时间当前时间添加分钟

61

问题简单,但这却浪费了我的时间。

有没有简单的解决方案,可以在 PHP 中添加 GMT+8 的当前时间 30 分钟?

13个回答

141

我认为最好的解决方案之一且最简单的是:

date("Y-m-d", strtotime("+30 minutes"))

也许这不是最高效的方法,但它是比较容易理解的方法之一。


如果您想相对于现有日期时间使用strtotime,可以执行以下操作 code strtotime('2011-11-01 + 2 days'); - Khriz

62

这是一个看起来已经有答案的旧问题,但正如上面有人指出的那样,如果你使用DateTime类和PHP < 5.3.0,你不能使用add方法,但你可以使用modify

$date = new DateTime();
$date->modify("+30 minutes"); //or whatever value you want

3
你也可以不使用 modify() 函数,而是像这样使用 $date = new DateTime('+30 minutes');。该代码可以在不使用修改函数的情况下将时间向前推 30 分钟。 - GrandFelix

14

30分钟后的时间

$newTime = date("Y-m-d H:i:s",strtotime(date("Y-m-d H:i:s")." +30 minutes"))

11
$timeIn30Minutes = mktime(idate("H"), idate("i") + 30);
或者
$timeIn30Minutes = time() + 30*60; // 30 minutes * 60 seconds/minute

结果将是当前时间加上30分钟的UNIX时间戳。


5
echo $date = date('H:i:s', strtotime('13:00:00 + 30 minutes') );

13:00:00 - 任何输入的时间

30分钟 - 任何您希望的间隔(20小时,10分钟,1秒钟等...)


3

看起来你需要使用DateTime函数的add方法 - 使用方式如下:

$date = new DateTime();
date_add($date, new DateInterval("PT30M"));

(注意:未经测试,但根据文档,它应该可以工作)

1
这是一个 PHP >= 5.3.0 的解决方案,因为在早期版本中函数和类 DateInterval 不可用。 - Stefan Gehrig
是的,但标题确实指定了日期时间,所以我认为他正在使用DateTime类。 - a_m0d
1
DateTime是PHP >= 5.2.0的一部分,但DateInterval以及一些DateTime方法在5.3.0之前不可用。 - Stefan Gehrig
@a_m0d @tokam 文档说必须以“P”开头表示“周期”,因此,以下是添加30分钟的正确方法:new DateInterval('PT30M')(已测试! :)) - Willy Barro

3
$dateTime = new DateTime('now', new DateTimeZone('Asia/Kolkata')); 
echo $dateTime->modify("+10 minutes")->format("H:i:s A");

2
虽然这段代码可能解决了问题,但是包括解释它如何以及为什么解决了问题(最好还能说明它如何改进其他答案),将有助于提高您的帖子质量,并可能获得更多赞。请记住,您正在回答未来读者的问题,而不仅仅是现在提问的人。请编辑您的答案以添加解释并指出适用的限制和假设。 - David Buck

2
$ck=2016-09-13 14:12:33;
$endtime = date('H-i-s', strtotime("+05 minutes", strtotime($ck)));  

1
除了Khriz的答案之外,
如果您需要在Mysql格式中将当前时间增加5分钟,可以执行以下操作:
$cur_time=date("Y-m-d H:i:s");
$duration='+5 minutes';
echo date('Y-m-d H:i:s', strtotime($duration, strtotime($cur_time)));

0

这个问题有点老了,但我经常回来看看 ;p

另一种方法,也是一行代码:

<?= date_create('2111-11-11 00:00:00')->modify("+30 minutes")->format('Y-m-d h:i:s') ?>

或从时间戳返回Y-m-d h:i:s:

<?= date_create('@'.time())->modify("+30 minutes")->format('Y-m-d h:i:s') ?>

或者从时间戳返回时间戳:

<?= date_create('@'.time())->modify("+30 minutes")->format('U') ?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接