php/mysql/javascript mindate和maxdate

Jim*_*mmy 7 javascript php mysql date

.net,有一些静态属性DateTime.MinDate, and DateTime.MaxDate可以方便地返回DateTime对象的最小和最大有效日期.

我现在正在使用网络编程php + mysql + javascript.min/max date在编程环境中似乎没有相同的方便值?例如,mysql中日期对象的最大值是9999-12-31,但php函数strtotime()不喜欢该值.

我想要一个跨语言的最小日期(例如用于表示'尚未设置')和跨语言的最大日期(用于表示'永远的好').这意味着可能存在数据库中存储的最小日期和最大日期,php将检索(并且它必须区分"正常"日期和最小/最大日期),并且最终它们会流入一些javascript(其中,再次必须区分'正常'日期和最小/最大日期).

那么,在php + mysql + javascript中工作时,你使用哪个日期值为最小/最大日期?你如何存储这些常量 - 最好只在一个地方定义它们并让它们在每个php + mysql + javascript中都可用...

谢谢

Ryl*_*ley 12

对于JavaScript方面,范围要大得多:

自UTC时间1970年1月1日午夜起,该日期以毫秒为单位.一天持有86,400,000毫秒.相对于UTC时间1970年1月1日,Date对象范围是-100,000,000天到100,000,000天.

所以你可以在你的JavaScript中做到这一点:

var min_date = new Date(-100000000*86400000);
var max_date = new Date( 100000000*86400000);   
Run Code Online (Sandbox Code Playgroud)


pjb*_*ley 2

我将只回答问题的 PHP 部分。根据PHP date() 文档

\n\n
\n

时间戳的有效范围通常是从 1901 年 12 月 13 日星期五 20:45:54 GMT 到 2038 年 1 月 19 日星期二 03:14:07 GMT。(这些日期对应于 32 位有符号整数的最小值和最大值)

\n
\n\n

PHP 使用 32 位整数值来表示日期/时间 \xe2\x80\x94 这意味着您可以使用 PHP_INT_MAX 常量来导出与最小/最大日期相关的整数值:

\n\n
echo date(\'m/d/Y G:i:s\', PHP_INT_MAX + 1); // minimum valid date\necho date(\'m/d/Y G:i:s\', PHP_INT_MAX); // maximum valid date\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

输出:

\n\n

1901年12月13日 15:45:52

\n\n

01/18/2038 22:14:07

\n
\n\n

不知道为什么他们引用的最短日期有 2 秒的偏差,但你明白了总体思路。

\n