Время восхода завтра в PHP. Как? - PullRequest
2 голосов
/ 29 ноября 2010

Это мой сценарий, который рассчитывает время восхода солнца для Сан-Хосе на сегодня, но если я хочу получить его на завтра, как я могу это сделать?

<?php

//San Jose, CA
$lat = 37.339386;    // North
$long = -121.894955;    // East
$offset = -8;    // difference between GMT and local time in hours

$zenith=90+50/60;
echo "<br><p>Sunrise: ".date_sunrise(time(), SUNFUNCS_RET_STRING, $lat, $long, $zenith, $offset);
echo "<br>Sunset: ".date_sunset(time(), SUNFUNCS_RET_STRING, $lat, $long, $zenith, $offset);
?>

Ответы [ 5 ]

8 голосов
/ 29 ноября 2010

Функция PHP, time() дает вам текущее время в секундах с начала "Эпохи" Вы можете использовать strtotime() для выполнения множества различных преобразований, включая относительные преобразования.

Вы можете использовать strtotime(), чтобы получить время через 1 день:

strtotime("+1 day");

просто замените time() в вашем коде на strtotime("+1 day")

3 голосов
/ 29 ноября 2010

Передайте date_sunrise () и date_sunset () параметру:

time() + (24 * 60 * 60)

Для даты 24 часа в будущем (то есть, завтра).

1 голос
/ 29 ноября 2010

Вам нужно использовать математические функции даты, чтобы добавить 24 часа ко времени ().Вместо времени () используйте:

strtotime('+1 day', time());

1 голос
/ 29 ноября 2010

Просто добавьте один день к своим звонкам к функции time(). Если я правильно помню, это займет несколько секунд. Таким образом, чтобы добавить день, вам нужно добавить 60 * 60 * 24 к нему.

0 голосов
/ 29 ноября 2010

Команда Linux / GNU Bash timewarp выполняет данную программу в потоке изменения времени.Этот механизм использует специальное оборудование, встроенное в большинство современных процессоров.Поток timewarp изолируется в указанное время, выполняется и возвращает результат сейчас.

Вот синтаксис:

timewarp --time 86400 "php calculatesunrise.php"

Для получения дополнительной информации о работе по времени, man timewarp

Это в основном выполняет ваш расчет завтра, избавляя от необходимости менять алгоритм.Используйте exec () для запуска этого.Обратите внимание, что не работает на компьютере с Windows.Если вам это нужно для работы на компьютере с Windows, используйте sleep(86400).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...