在.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中都可用...
由于
答案 0 :(得分:12)
对于JavaScript方面,range is a lot bigger:
自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);
答案 1 :(得分:2)
我将回答问题的PHP部分。根据{{3}}:
时间戳的有效范围通常是从格林尼治标准时间1901年12月13日20:45:54到格林威治标准时间2038年1月19日星期二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
输出:
12/13/1901 15:45:52
01/18/2038 22:14:07
不确定为什么在他们引用的最后约会时间为2秒,但你得到了一般的想法。
答案 2 :(得分:0)
对于'not set yet'逻辑值,可能空值更好。