当我将null作为第二个参数传递时,PHP date()返回epoch

时间:2016-06-01 06:22:24

标签: php date

我想知道为什么当我手动将null作为第二个参数传递给日期函数时,PHP给了我一个纪元时间,你们中的任何人都知道吗?

print_r(date('Y-m-d', null));

结果:

1970-01-01

2 个答案:

答案 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,它将不接受它,因为它需要时间戳作为值。所以它给你错误的约会