Я пытаюсь установить максимальную настройку метки времени для данной среды хостинга и установить константу с этим значением. Я написал следующее:
define('SC_TIME_END_OF_64', mktime(23, 59, 59, 12, 31, 9999));
Если я затем покажу два значения в системе, которая, как известно, имеет 64-битные целые числа и 64-битное время:
echo SC_TIME_END_OF_64 . ' ' . mktime(23, 59, 59, 12, 31, 9999);
Я получил:
253402300799 253402318799
Моя константа на 18000 секунд слишком мала.
Затем я попробовал:
if (mktime(23, 59, 59, 12, 31, 9999) == 253402318799) {
Это условие принимает значение false. Если я заменю 253402300799, это будет верно.
Наконец, я попробовал:
$time_64 = mktime(23, 59, 59, 12, 31, 9999);
echo $time_64;
И получаю ожидаемый ответ:
253402318799
Я в тупике. Что я не понимаю в константах?
gmmktime()
-when called with no arguments, gmmktime() uses the current GMT time, and mktime() uses the current local time
- person Mark Baker   schedule 19.08.2014