日期格式:
$date1 = '16-MAR-2015';
$date2 = '04-FEB-15';
我该如何检查
$date1 <= $date2 || $date1 => $date2
我需要将日期格式转换为什么?
$date1 = '16-3-2015';
$date2 = '04-2-15';
使用strtotime()
函数:
<?php
$date1 = strtotime("16-MAR-2015");
$date2 = strtotime("04-FEB-15");
?>
并比较
$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);
在给定的格式下,您不需要进行任何转换,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
}
16-MAR-2015
是否可与04-FEB-15
(请注意年份格式)相比较? - Slimshadddyyy$date1
。请使用临时变量进行比较,例如$tmpDate1
。DateTime对象的比较不会导致致命错误。我不确定我是否理解你的意思,但是是的,你可以使用if (date_create($date1) > date_create($date2)) {
。 - Clément Malet$date1
只被定义了一次,且没有被使用过。 - Slimshadddyyy$date1 = '16-MAR-2015';
$date2 = '04-FEB-15';
$dateComp1 = new DateTime($date1);
$dateComp2 = new DateTime($date2);
DateTime
足够智能以自动转换格式。捕获致命错误:DateTime类的对象无法转换为字符串
。 - SlimshadddyyyDateTime
对象中使用与 $date1
和 $date1
不同的变量名。一旦它们被转换,您将无法对其进行回显或操作。 - EternalHourDateTime
而不是strtotime
?有多种方法可以达到目的。那么DateTime::createFromFormat('j-M-Y', '16-MAR-2015');
呢? - Slimshadddyyy$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()
$date1 = '16-MAR-2015'
和 $date2 = '04-FEB-15'
这两个日期? - Slimshadddyyydate("d-m-Y h:i:s",$date1);
- Ghostman尝试
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
-first 格式插入它,则无论第二个格式如何,它似乎都可以正确比较。
strtotime()
。 - Ghostman