我想知道为什么当我手动将null作为第二个参数传递给日期函数时,PHP给了我一个纪元时间,你们中的任何人都知道吗?
print_r(date('Y-m-d', null));
结果:
1970-01-01
答案 0 :(得分:2)
日期函数的第二个参数是可选的时间戳。如果您指定它,那么它将以您请求的日期格式进行转换。
由于PHP没有使用严格的输入法,因此它实现了this manual page所描述的type juggling
。这个原则会使你的null
值变为0,这将代表Unix纪元的时间。
通过运行var_dump((int) null);
。
答案 1 :(得分:1)
只需使用date('Y-m-d')
代替date('Y-m-d', null)
监守:
string date ( string $format [, int $timestamp = time() ] )
第二个参数是timestamp并且是可选的,它会自动将time()作为默认值,你不需要设置null。
如果传递null,它将不接受它,因为它需要时间戳作为值。所以它给你错误的约会