@semechki
Я не фрилансер, просто пишу код для себя.

Почему не могу прибавить к дате определённое время?

Здравствуйте, знатоки.
Это снова я и у меня снова к вам вопрос :)
К коду.
$date = '28.10.2020';
$date = date("d.m.Y H:i", $date);
$everyday = '1:10'; // Выводится из базы данных, 1 час 10 минут
$everyday = explode(":", $everyday);
$newDateH = date('d.m.Y H:i', strtotime("+".$everyday[0]." hours", $date));
if( $everyday[1] != '00' ){
	$newDate = date('d.m.Y H:i', strtotime("+".$everyday[1]." minutes", $newDateH));
}else{
	$newDate = $newDateH;
}

При выводе получается это:
Старая дата - 28.10.2020 02:41 Новая дата - 01.01.1970 04:00
Каким чудом - не знаю, но очень беспокоит эта проблема, скорее всего где-то намудрила с кодом...
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
$date = date("d.m.Y H:i", $date);
Что вы хотели сделать в этой строке? Второй параметр, который принимает функция date() - метка времени, заданная как целое число секунд с начала эпохи Unix. А вы передаёте строку.
Аналогично и в случаях использования strtotime() вторым параметром должна быть метка времени, а не строка.
$date = '28.10.2020';
$timestamp = strtotime($date);
$shift = '1:10';
$hm = explode(':', $shift);
$timestamp += $hm[0] * 3600 + $hm[1] * 60;
$newDate = date('d.m.Y H:i', $timestamp);
var_dump($newDate);
// string(16) "28.10.2020 01:10"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы