php / mysql / JavaScript mindate и maxdate

В .net, существуют статические свойства DateTime.MinDate, and DateTime.MaxDate это удобно возвращает минимальные и максимальные допустимые даты объекта DateTime.

Я балуюсь веб-программированием прямо сейчас, с помощью php + mysql + javascript. Кажется, нет удобного того же min/max date значения в той среде программирования? Например, макс. значение объекта даты в mysql 31.12.9999, но функции php strtotime () не нравится то значение.

Я хотел бы межъязыковую минимальную дату (чтобы использоваться, чтобы означать 'не набор все же', например), и межъязыковая максимальная дата (использоваться для значения 'хороший навсегда'). Это означает, что могли быть те минимальные даты и макс. даты, сохраненные в базе данных, которую php получит (и он должен был бы дифференцироваться между 'нормальными' датами и минимальной датой / макс. датой), и в конечном счете они будут сочиться вниз к некоторому JavaScript (который, снова должен был бы дифференцировать между 'нормальными' датами и минимальной датой / макс. датой).

Так, какое значение даты Вы используете для минимальных дат / макс. дат при работе в php + mysql + JavaScript? И как Вы храните эти константы - было бы хорошо определить их только в одном месте и сделать, чтобы они были доступны в каждом из php + mysql + JavaScript...

Спасибо

7
задан Gowri 16 April 2011 в 06:57
поделиться

3 ответа

Я просто отвечу на часть вопроса, относящуюся к PHP. Согласно документации PHP date () :

Допустимый диапазон метки времени обычно с пятницы, 13 декабря 1901 года, 20:45:54 по Гринвичу, 19 января 2038 года, 03:14:07 по Гринвичу. . (Это даты, которые соответствуют минимальному и максимальному значениям для 32-битного целого числа со знаком)

PHP использует 32-битные целые числа для представления даты / времени - это означает, что вы можете использовать константу PHP_INT_MAX для получения связанных целочисленных значений с минимальными / максимальными датами:

echo date('m/d/Y G:i:s', PHP_INT_MAX + 1); // minimum valid date
echo date('m/d/Y G:i:s', PHP_INT_MAX); // maximum valid date

ВЫВОД:

13.12.1901 15:45:52

18.01.2038 22:14:07

Не знаю, почему это выключено на 2 секунды минимальная дата, которую они указали, но вы поняли общую идею.

2
ответ дан 6 December 2019 в 15:19
поделиться

Для JavaScript диапазон намного больше :

Дата измеряется в миллисекундах с полуночи 1 января 1970 г. по всемирному координированному времени. В сутках содержится 86 400 000 миллисекунд. Диапазон объекта Date составляет от -100000000 дней до 100000000 дней относительно 1 января 1970 года по всемирному координированному времени.

Таким образом, вы можете сделать это в своем JavaScript:

var min_date = new Date(-100000000*86400000);
var max_date = new Date( 100000000*86400000);   
12
ответ дан 6 December 2019 в 15:19
поделиться

Для логического значения 'not set yet', возможно, лучше использовать нулевое значение.

0
ответ дан 6 December 2019 в 15:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: