我正在编写一些代码脚本,其日期很短,如
14/12/17
30/11/17
20/11/17
我需要将这些转换为长日期格式,因此我使用PHP 日期功能和 strtotime ,如下所示
echo date('d-m-Y',strtotime('14/12/17'));
但它始终以 01-01-1970 作为输出,但它应该 14-12-2017
任何人都知道如何将其转换为长日期格式。
PS。其他问题答案建议更改日期输入格式,但我无法更改日期输入,因为它来自其他网站
答案 0 :(得分:0)
这是我发布的链接,OP说的不正确
最初由ceiroa发布。
Convert one date format into another in PHP
$myDateTime = DateTime::createFromFormat('d/m/y','14/12/17');
$newDateString = $myDateTime->format('d-m-Y');
Echo $newDateString;
答案 1 :(得分:0)
使用preg_replace在传入日期翻转日期和月份,然后根据需要使用日期。
$orig = ['14/12/17', '30/11/17', '20/11/17'];
foreach ($orig as $s) {
echo date('d-m-Y', strtotime(preg_replace('#(\d+)\/(\d+)\/(\d+)#', '$2/$1/$3', $s)))."\n";
}
答案 2 :(得分:-1)
它有点冗长但有效 -
<?php
$date = "14/12/17";
$date = str_replace("/", "-", $date);
$date = explode("-", $date);
echo date('d-m-Y',strtotime($date[2]."-".$date[1]."-".$date[0] ));
?>
答案 3 :(得分:-1)
试试这个,但这仅适用于20XX
年......
$date = explode('/','14/12/17');
echo date('d-m-Y',strtotime('20'.$date[2].'-'.$date[1].'-'.$date[0]));