gpt4 book ai didi

php - 为什么 unix 时间戳需要以 '@' 为前缀才能让 strtotime() 理解它?

转载 作者:可可西里 更新时间:2023-11-01 13:47:58 24 4
gpt4 key购买 nike

我注意到 strtotime() 以一种奇怪的方式处理 unix 时间戳,我很好奇是否有人知道这是为什么:

var_export(strtotime('1330725042'));  // false
var_export(strtotime('@1330725042')); // 1330725042

为什么在给定 unix 时间戳时 strtotime() 返回 false(除非所述时间戳以 @ 为前缀)?

这是我构建的库方法的内部结构,旨在将未知格式变量“解析”为时间戳。在这种情况下使用裸 strtotime() 没有帮助,因为当传入值实际上是时间戳时它会返回错误的结果。

我重新设计了库方法来显式检查类似时间戳的值并将其原封不动地返回,所以……我们应该说,这个问题不再有实际应用;我只是好奇。

最佳答案

strtotime() 接收的字符串必须采用特定格式。 http://www.php.net/manual/en/datetime.formats.php

如果 strtotime() 不能识别输入格式,它返回 FALSE。由于 unix 时间只是一个数字序列,除非您明确指定您使用的格式,否则它无法正确解析它们。将 @ 放在开头会向函数指示此序列采用 unix 时间格式。

有关更多信息,请参阅文档: http://php.net/manual/en/function.strtotime.php

关于php - 为什么 unix 时间戳需要以 '@' 为前缀才能让 strtotime() 理解它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9540894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com