我尝试转换
12-18-1997
至
18-12-1997
使用此代码
$new_date = date('d-m-Y', strtotime('12-18-1997'));
但它导致18-12-1969
如果我必须将完整日期与时间一起转换,那么它的转换很好,但在我发布的日期没有时间。
我尝试转换
12-18-1997
至
18-12-1997
使用此代码
$new_date = date('d-m-Y', strtotime('12-18-1997'));
但它导致18-12-1969
如果我必须将完整日期与时间一起转换,那么它的转换很好,但在我发布的日期没有时间。
strtotime 很好,但它不是通灵的或无所不知的。你给它一个无法正确解析的时间字符串:
php > var_dump(strtotime('12-18-1997'));
bool(false)
由于您只是假设它成功了,因此您将其false
反馈给date()
,在其中将其类型转换为整数 0。但是,您的结果是不可能的,因为 int 0 作为日期是 1970 年 1 月 1 日。使用时区转换,它31-12-1969
适合你,而不是 18-12
。
如果您无法为 strtotime 提供它理解的格式,请使用 date_create_from_format 并告诉它格式是什么:
$date = date_create_from_format('m-d-Y', '12-18-1997');
$text = date('d-m-Y', $date);