Когда я увеличиваю значение DateTime на любые часы, результат будет OKAY, но когда я увеличу его на 12 часов, он не увеличивается. DateTime + 12 часов с указанием того же DateTime. Зачем?
Пожалуйста, смотрите следующий код для деталей:
$creation_date = new DateTime('2016-09-07 06:00:00', new DateTimeZone('Asia/Kolkata'));
$expiration_date = new DateTime('2016-09-07 06:00:00', new DateTimeZone('Asia/Kolkata'));
Когда я увеличиваю переменную $expiration_date
на 1 час, 3 часа, 8 часов, 24 часов и т.д., результат совершенен. Например,
Случай 1:
$expiration_date->add(new DateInterval('PT1H'));
echo "Creation Date: ".$creation_date->format('Asia/Kolkata')."<br/>Expiration Date: ".$expiration_date->format('Asia/Kolkata');
Результат 1:
Дата создания: 2016-09-07 06:00:00
Дата окончания: 2016-09-07 7:00 : 00
Случай 2:
$expiration_date->add(new DateInterval('PT3H'));
echo "Creation Date: ".$creation_date->format('Asia/Kolkata')."<br/>Expiration Date: ".$expiration_date->format('Asia/Kolkata');
Результат 2:Дата создания: 2016-09-07 06:00:00
Дата окончания: 2016-09-07 09:00:00
Случай 3:
$expiration_date->add(new DateInterval('PT8H'));
echo "Creation Date: ".$creation_date->format('Asia/Kolkata')."<br/>Expiration Date: ".$expiration_date->format('Asia/Kolkata');
Результат 3:
Дата создания: 2016-09-07 06:00:00
Дата окончания: 2016-09-07 02:00:00
Случай 4:
$expiration_date->add(new DateInterval('PT24H'));
echo "Creation Date: ".$creation_date->format('Asia/Kolkata')."<br/>Expiration Date: ".$expiration_date->format('Asia/Kolkata');
Результат 4:
Дата создания: 2016-09-07 06:00:00
Дата окончания: 2016-09-08 06:00:00
Но когда я увеличиваю $expiration_date
переменную 12 часов, дата не увеличивается!
Они показывают одно и то же время!
Случай 5:
$expiration_date->add(new DateInterval('PT12H'));
echo "Creation Date: ".$creation_date->format('Asia/Kolkata')."<br/>Expiration Date: ".$expiration_date->format('Asia/Kolkata');
Результат 5:
Дата создания: 2016-09-07 06:00:00
Дата окончания: 2016-09-07 6:00:00
Что я делаю неправильно?
Я предполагаю, что это правильно заселение, однако ваш формат времени должен быть установлен на 24 часа, не могли бы вы проверить, что? – SanketR
https://3v4l.org/2g7r5 Работает для меня. Также 'format ('Asia/Kolkata')' не имеет смысла. –
Ваш код верный, вам нужно просто убедиться, что он должен показывать дату в 24 часа. 6pm + 12hrs = 6am – STEEL