zmo*_*mol 5 php datetime strtotime
PHP strtotime()假定给定的输入是表示有效时间的字符串.在使用之前strtotime(),如何验证要提供给它的字符串是否为有效格式之一?
Bol*_*ock 10
strtotime()如果它无法理解您的日期格式,则返回false,以便您可以检查其返回值.该功能没有任何副作用,因此试图调用它不会有任何伤害.
// $format = ...
if (($timestamp = strtotime($format)) !== false) {
// Obtained a valid $timestamp; $format is valid
} else {
// $format is invalid
}
Run Code Online (Sandbox Code Playgroud)
但是,请注意,它strtotime()仅支持与服务器体系结构相同的Unix时间戳范围.这意味着它将在某些日期范围内错误地返回false.从手册:
注意:
时间戳的有效范围通常是从星期五,1901年12月13日20:45:54 UTC到星期二,2038年1月19日03:14:07 UTC.(这些是与32位有符号整数的最小值和最大值相对应的日期.)此外,并非所有平台都支持负时间戳,因此您的日期范围可能不会早于Unix时期.这意味着例如1970年1月1日之前的日期将无法在Windows,某些Linux发行版和一些其他操作系统上运行.PHP 5.1.0和更新的版本克服了这个限制.
对于64位版本的PHP,时间戳的有效范围实际上是无限的,因为64位可以代表任何方向上大约2930亿年.
由于服务器体系结构可能会有所不同,根据您的使用情况,您可能会受限于32位Unix时间戳,即使64位时间戳覆盖了几乎无限的时间段.