2016-03-28 4 views
0

это то, что я получил:Как добавить на отформатированный дату в PHP

$_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)); 

Однако этот штамп не печатает что-нибудь прямо сейчас

ответ

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'); 
0

Вы ищете функции изменить на объект datetime.

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

Примечание Я просто вытащил это из Carbon Library, который является очень полезным обертка для DateTime давая вам хороший немного синтаксического сахара, такие как:

$trigger->addMinutes(10); 
+0

$ _SESSION ["selected_exam_start_time"] = new DateTime(); $ schedule_date = $ _SESSION ["selected_exam_start_time"]; $ schedule_date-> setTimeZone (новый DateTimeZone ('Европа/Лондон')); $ triggerOn = $ schedule_date-> format ('Y-m-d H: i: s'); $ value = 10; $ triggerOn-> изменить ((int) $ value. 'Minute'); die (var_dump ($ triggerOn)); –

+0

Я пробовал это, но штамп ничего не печатал –

+0

Я обновил свой вопрос, чтобы показать его четко, спасибо –

Смежные вопросы