PHP短日期到长日期问题

时间:2017-12-30 06:58:53

标签: php date strtotime

我正在编写一些代码脚本,其日期很短,如

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。其他问题答案建议更改日期输入格式,但我无法更改日期输入,因为它来自其他网站

4 个答案:

答案 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;

https://3v4l.org/2AcAd

答案 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]));