我尝试转换
12-18-1997
到
18-12-1997
使用此代码
$new_date = date('d-m-Y', strtotime('12-18-1997'));
但会产生18-12-1969
如果我必须随时间转换完整日期,那么转换就好了,但是在我发布的日期没有时间。
答案 0 :(得分:0)
使用DateTime
代替strtotime()
:
$date = DateTime::createFromFormat( 'm-d-Y', '12-18-1997');
echo $date->format( 'd-m-Y');
您可以从this demo看到它打印出来:
18-12-1997
答案 1 :(得分:0)
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);