如何在PHP中添加格式化日期

时间:2016-03-28 16:24:39

标签: php mysql datetime

这就是我所拥有的:

$_SESSION["chosen_exam_start_time"] = new DateTime();
$schedule_date =  $_SESSION["chosen_exam_start_time"]; 
$schedule_date->setTimeZone(new DateTimeZone('Europe/London'));
$triggerOn =  $schedule_date->format('Y-m-d H:i:s');

所以我在会话中传递了一个名为" chosen_exam_start_time"的日期。

现在我正在努力做的是添加$ triggerOn。

目前如果我这样做

die(var_dump($triggerOn));

我明白了:

string(19) "2016-03-28 17:17:57"

我想要做的是如果我有另一个变量告诉我类似10的值,我怎么能将该值添加到$ triggerOn。所以它将是:

string(19) "2016-03-28 17:27:57"

到目前为止我所做的是:

            $_SESSION["chosen_exam_start_time"] = new DateTime();
            $schedule_date =  $_SESSION["chosen_exam_start_time"]; 
            $schedule_date->setTimeZone(new DateTimeZone('Europe/London'));
            $triggerOn =  $schedule_date->format('Y-m-d H:i:s');
            $value = 10;

            $triggerOn->modify((int) $value.' minute');


            die(var_dump($triggerOn));

然而,这个模具现在不打印任何东西

2 个答案:

答案 0 :(得分:1)

使用字符串进行任何计算都没有意义。想象你有这个:

$price = 'Thirty five point nine';
$discount = 'Twenty percent';

...你想申请折扣; - )

如果您当前的架构使得无法保留原始DateTime对象(我不知道,我没有足够的信息),您最好创建一个新的:

<?php

$triggerOn = '2016-03-28 17:17:57';
$minutes_to_add = 10;

$triggerOnDateTime = new DateTime($triggerOn, new DateTimeZone('Europe/London'));
$triggerOnDateTime->modify( sprintf('%d minutes', $minutes_to_add) );
$triggerOn = $triggerOnDateTime->format('Y-m-d H:i:s');

答案 1 :(得分:0)

您正在寻找日期时间对象的修改功能。

$trigger->modify((int) $value.' minute');

注意我刚刚从Carbon Library中提取了这个内容,这是一个非常有用的DateTime包装器,为您提供了很多语法糖,例如:

$trigger->addMinutes(10);