Как мне найти метку времени Unix для начала следующего дня в php? - PullRequest
18 голосов
/ 26 марта 2010

У меня есть метка времени Unix для текущего времени. Я хочу получить метку времени Unix для начала следующего дня.

$current_timestamp = time();
$allowable_start_date = strtotime('+1 day', $current_timestamp);

Поскольку я делаю это сейчас, я просто добавляю 1 целый день к метке времени Unix, когда вместо этого я хотел бы выяснить, сколько секунд осталось в этом текущем дне, и добавить только столько секунд, получить метку времени Unix для самой первой минуты следующего дня.

Как лучше всего это сделать?

Ответы [ 6 ]

26 голосов
/ 26 марта 2010

Самый простой способ просто " сделать " в это время:

$tomorrowMidnight = mktime(0, 0, 0, date('n'), date('j') + 1);

Цитата:

Я хотел бы выяснить, сколько секунд осталось в текущем дне, и добавить только столько секунд, чтобы получить метку времени Unix для самой первой минуты следующего дня.

Не делай так. Старайтесь избегать относительных вычислений, когда это возможно, особенно если это так просто: «абсолютно» получить временную метку без секундной арифметики.

8 голосов
/ 26 марта 2010

Вы можете легко получить завтра в полночь с:

$tomorrow_timestamp = strtotime('tomorrow');

Если вы хотите использовать переменное количество дней, вы можете легко сделать это следующим образом:

$days = 4;
$x_num_days_timestamp = strtotime(date('m/d/Y', strtotime("+$days days"))));
3 голосов
/ 26 марта 2010
$tomorrow = strtotime('+1 day', strtotime(date('Y-m-d')));
$secondsLeftToday = time() - $tomorrow;
2 голосов
/ 26 марта 2010

Что-то простое, как:

$nextday = $current_timestamp + 86400 - ($current_timestamp % 86400);

это то, что я бы использовал.

0 голосов
/ 04 декабря 2013

Мой вариант:

 $allowable_start_date = strtotime('today +1 day');
0 голосов
/ 26 марта 2010

Начало следующего дня рассчитывается так:

<?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);

?>
...