php - 添加两个小时的日期变量
我想向已有的日期/时间变量添加 3 分钟,但我不知道如何执行此操作。 我用这样的字符串创建了变量:(顺便说一句,它采用 RFC 2822 日期格式)
$date = 2011-10-18T19:56:00+0200
我使用以下命令将该字符串转换为日期:
$time = date_format(DateTime::createFromFormat("Y-m-d\TH:i:sO", $date), "G:i")
现在,我想为其添加 3 分钟变量,但我不知道如何。 我之前在脚本中使用过以下命令,但这适用于当前日期/时间,所以我不确定如何将其用于我的时间变量:
$currenttime = date('G:i', strtotime('+2 hours'));
那么,如何向 $time 变量添加三分钟?
I want to add 3 minutes to a date/time variable I have, but I'm not sure how to do this.
I made the variable from a string like this: (which is in the RFC 2822 date format btw)
$date = 2011-10-18T19:56:00+0200
I converted that string into date using this command:
$time = date_format(DateTime::createFromFormat("Y-m-d\TH:i:sO", $date), "G:i")
Now, I'd like to add 3 minutes to that variable, but I I'm not sure how.
I've used the following command in my script before, but that applies to the current date/time, so I'm not sure how to use that for my time variable:
$currenttime = date('G:i', strtotime('+2 hours'));
So, how can I add three minutes to the $time variable?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
由于您已经在使用 DateTime 对象,因此请继续使用它:
Since you're using the DateTime object already, stick with it:
使用
strtotime
的第二个参数提供参考时间:Use the second parameter of
strtotime
to provide a reference time:http://www.php.net/manual/en/dateinterval.construct.php
话虽这么说,我对类似问题的解决方案是这样的:
问题是在使用时添加
P
DateInterval
类,以及时间条目之前的T
。对于您的情况,您需要使用PT3M
进行 3 分钟添加。我试图添加 2 小时,我所做的是$time->add(new DateInterval('PT2H'));
。如果您查看间隔规格:
M
表示月
,M
表示分钟
。这就是为什么时间前面有一个T
。至少我愿意相信这一点......'O_O
http://www.php.net/manual/en/dateinterval.construct.php
That being said my solution to a similar problem is this:
The thing is to add
P
when usingDateInterval
class, andT
before time entries. For your case you need to go withPT3M
for 3 minute addition. I was trying to add 2 hours and what I did was$time->add(new DateInterval('PT2H'));
.If you would look at the interval specs:
M
formonths
andM
forminutes
. That is why there is aT
in front of time.At least that's what I want to believe... 'O_O