У меня есть метка времени Unix в течение текущего времени. Я хочу получить метку времени Unix для запуска следующего дня.
$current_timestamp = time();
$allowable_start_date = strtotime('+1 day', $current_timestamp);
Поскольку я делаю его теперь, я просто добавляю 1 целый весь день к метке времени Unix, когда вместо этого я хотел бы выяснить, сколько секунд оставляют в этот текущий день и только добавляет, что много секунд для получения метки времени Unix в течение самой первой минуты следующего дня.
Что лучший способ состоит в том, чтобы пойти об этом?
Самый простой способ просто « сделать » в то время:
$tomorrowMidnight = mktime(0, 0, 0, date('n'), date('j') + 1);
Цитата:
Я хотел бы выяснить, сколько секунд осталось в текущем дне, и добавить только это количество секунд, чтобы получить временную метку unix для самой первой минуты следующего дня.
Не делай этого так. По возможности избегайте относительных вычислений, особенно если «абсолютно» получить метку времени без секундной арифметики настолько тривиально.
Вы можете легко получить метку времени завтра в полночь с помощью:
$tomorrow_timestamp = strtotime('tomorrow');
Если вы хотите иметь возможность делать переменное количество дней, вы можете легко сделать это так:
$days = 4;
$x_num_days_timestamp = strtotime(date('m/d/Y', strtotime("+$days days"))));
Что-нибудь простое, например:
$nextday = $current_timestamp + 86400 - ($current_timestamp % 86400);
- вот что я бы использовал.
Начало следующего дня рассчитывается следующим образом:
<?php
$current_timestamp = time();
$allowable_start_date = strtotime('tomorrow', $current_timestamp);
echo date('r', $allowable_start_date);
?>
Если это должно соответствовать вашему особому требованию:
<?php
$current_timestamp = time();
$seconds_to_add = strtotime('tomorrow', $current_timestamp) - $current_timestamp;
echo date('r', $current_timestamp + $seconds_to_add);
?>
$tomorrow = strtotime('+1 day', strtotime(date('Y-m-d')));
$secondsLeftToday = time() - $tomorrow;