PHP - 比较不同格式的日期

时间:2015-03-28 08:18:10

标签: php date

日期格式:

 $date1 = '16-MAR-2015';
 $date2 = '04-FEB-15';

如何检查

$date1 <= $date2 || $date1 => $date2

我是否需要在

中转换日期格式
 $date1 = '16-3-2015';
 $date2 = '04-2-15';

6 个答案:

答案 0 :(得分:5)

使用strtotime()

<?php

    $date1 = strtotime("16-MAR-2015");
    $date2 = strtotime("04-FEB-15");

?>

和compair

答案 1 :(得分:2)

尝试这种方式,它的工作原理。 DEMO

$date1 = DateTime::createFromFormat('j-M-Y', '16-MAR-2015');
$date2 = DateTime::createFromFormat('j-M-y', '04-FEB-15');
$date1=$date1->format('Y-m-d');
$date2=$date2->format('Y-m-d');
var_dump($date1 <= $date2);
var_dump($date1 >= $date2);

答案 2 :(得分:0)

您不需要使用给定格式转换任何内容,DateTime可以满足您的需求。

只需将它们转换为DateTime个对象并进行比较:

$date1 = '16-MAR-2015';
$date2 = '04-FEB-15';

$date1 = date_create($date1);
$date2 = date_create($date2);
// $date1 > $date2 -> true
// $date1 < $date2 -> false

或者

if (date_create($date1) > date_create($date2)) {
    // Use $date1 unchanged
}

答案 3 :(得分:0)

$myDateTime = DateTime::createFromFormat('Y-m-d', $dateString); $newDateString = $myDateTime->format('m/d/Y');有一个名为strtotime()

的神奇功能

如果需要以可读格式打印值,可以使用函数DATE

date("d-m-Y h:i:s",$date1);

在你的情况下。 你想用

  

Date.parse()

答案 4 :(得分:0)

首先,您需要将它们转换为DateTime对象。

DEMO

$date1 = '16-MAR-2015';
$date2 = '04-FEB-15';

$dateComp1 = new DateTime($date1);
$dateComp2 = new DateTime($date2);

然后你可以比较它们,DateTime足够聪明,可以自动转换格式。

答案 5 :(得分:-1)

date1= new DateTime();
date1= new Datetime->format('d-m-Y'); // this will print year 4 digits ie; 2017

date2= new DateTime();
date2= new DateTime->format('d-m-y'); //this will print 2 digit year ie; 17

// to compare

$differance=$date1->diff($date2);

echo $differance->format('d-m-y'); //or change to upper case Y for 4 digit year
注意......在mysql 5.6中,输入格式似乎必须首先是Y:如果你用Y插入它 - 首先是格式化,无论第二种格式如何,它似乎都能正确比较是