为了避免在使用PHP的strtotime()
函数时出现错误,您可以采取以下几个步骤:
-
确保输入的日期字符串格式正确。
strtotime()
函数支持以下日期格式:mm/dd/yyyy
、dd-mm-yyyy
、yyyy-mm-dd
、yyyy/mm/dd
、mm-dd-yyyy
(ISO-8601)、dd/mm/yyyy
(ISO-8601)、yyyy-mm-dd
(ISO-8601)、HH:mm
、HH:mm:ss
、D, d M Y H:i:s
、U
。如果输入的日期字符串格式与这些格式之一不匹配,strtotime()
将返回FALSE
。 -
使用
strtotime()
的第二个参数来指定时区。这可以避免由于时区差异导致的错误。例如:
$date = "2022-01-01";
$timezone = "America/New_York";
$timestamp = strtotime($date, $timezone);
- 使用
try-catch
语句来捕获DateTimeException
异常。这将允许您在出现错误时处理异常,而不是让脚本崩溃。例如:
$date = "invalid date";
try {
$timestamp = strtotime($date);
} catch (DateTimeException $e) {
echo "Error: " . $e->getMessage();
}
- 如果您不确定日期字符串是否有效,可以使用
DateTime::createFromFormat()
方法尝试创建一个DateTime
对象。如果创建成功,则可以使用getTime戳()
方法获取时间戳;如果失败,则将返回FALSE
。例如:
$date = "invalid date";
$dateTime = DateTime::createFromFormat('Y-m-d', $date);
if ($dateTime) {
$timestamp = $dateTime->getTimeStamp();
} else {
echo "Error: Invalid date format.";
}
遵循这些步骤可以帮助您避免在使用strtotime()
函数时出现错误。