PHP добавить минут на сегодняшний день - PullRequest
0 голосов
/ 28 мая 2018
$orderDate = date('d/m/Y H:i:s', strtotime($result[$x]['date_modified']) );
echo "<br>".$orderDate;
$endTime =date('d/m/Y H:i:s',strtotime('+10 minutes', $orderDate));
echo "<br>".date('d/m/Y H:i:s', $endTime);

печатается как

28/05/2018 09:27:45 - Это правильно

Примечание: неправильно сформированный числовойзначение, найденное в C: \ xampp5.5 \ htdocs \ php \ index.php в строке 4166

Примечание: в C: \ xampp5.5 \ htdocs \ php \ index.php встречается некорректное числовое значениепо линии 4167

01/01/1970 12:00:01 - Почему это не работает?

Ответы [ 3 ]

0 голосов
/ 28 мая 2018

Используйте DateTime :: createFromFormat , чтобы принять все типы формата даты и времени

$dt = DateTime::createFromFormat('d/m/Y h:i:s', '28/05/2018 09:27:45');
$dt->add(new DateInterval('PT10M'));
echo $dt->format('d/m/Y h:i:s');

Live Demo

0 голосов
/ 28 мая 2018
$orderDateTimestamp = strtotime($result[$x]['date_modified']);
$endDateTimeStamp = strtotime('+10 minutes', $orderDateTimestamp);
$orderDate = date('d/m/Y H:i:s', $orderDateTimestamp);
$endDate = date('d/m/Y H:i:s', $endDateTimeStamp);
echo $orderDate.'<br>'.$endDate;

strtotime ожидает, что второй параметр будет целым числом (отметка времени).Кроме того, он принимает в качестве источника строки не все форматы, такие как d/m/Y (проверьте также формат $result[$x]['date_modified'], если он исходит из набора результатов MySql, у вас не должно возникнуть проблем, поскольку он Y-m-d H:i:s).Так что исправьте это с этим решением, и оно должно работать

0 голосов
/ 28 мая 2018
Функция

strtotime не будет работать для некоторых форматов даты, и d/m/Y является одним из этих форматов.Для корректного манипулирования датой и временем одним из рекомендуемых форматов является формат даты MySQL, т.е. YYYY-mm-dd и дальнейшая его обработка.

Для дальнейшего чтения: Документация strtotime гласит: :

Даты в форматах m / d / y или dmy устраняются, если посмотреть на разделитель между различными компонентами: если разделитель является косой чертой (/), то предполагается, что используется американский m / d / y;тогда как если разделителем является тире (-) или точка (.), то предполагается, что используется европейский формат dmy.

...