我有一个代码,其中我正在使用 strtotime((在PHP中获取 DATE TIMESTAMP 。
遇到了它的奇怪响应。
案例1.我得到了一个日期,例如"星期二7月2日下午6点": strtotime给予bool(false(。
<?php $case1 = strtotime("Tue July 2 6pm");
var_dump($case1);
?>
案例2。如果日期类似于"星期二7月2日下午6:00":strtotime给时间戳" 1562115600 ",则为当年。
<?php $case2 = strtotime("Tue July 2 6:00pm");
var_dump($case2);
?>
任何人都可以帮我吗?为什么 strtotime为第一种情况提供了bool(false(?
可以做些什么来解决此问题,请提供帮助?
检查strtotime的PHP手册:
该功能希望给出一个包含英语日期格式的字符串,并将尝试将该格式解析为UNIX时间戳(自1970年1月1日以来00:00:00 UTC以来的秒数(,
返回成功的时间戳,否则为false。
要修复,必须将其转换为有效格式
PHP中的有效日期时间格式
到您的第一点:
<?php
date_create("Tue Jul 2 6pm");
var_dump(date_get_last_errors());
给出一个错误:"在数据库中找不到时区"。这意味着它不被识别为有效的日期/时间字符串。您可以明确指定格式:
date_create_from_format("D F j ga", "Tue Jul 2 6pm")