php实现比较两个字符串日期大小的方法

php实现比较两个字符串日期大小的方法,第1张

本文实例讲述了php实现比较两个字符串日期大小的方法。分享给大家供大家参考。具体如下:
<php
function
dateBDate($date1,
$date2)
{
//
日期1是否大于日期2
$month1
=
date("m",
strtotime($date1));
$month2
=
date("m",
strtotime($date2));
$day1
=
date("d",
strtotime($date1));
$day2
=
date("d",
strtotime($date2));
$year1
=
date("Y",
strtotime($date1));
$year2
=
date("Y",
strtotime($date2));
$from
=
mktime(0,
0,
0,
$month1,
$day1,
$year1);
$to
=
mktime(0,
0,
0,
$month2,
$day2,
$year2);
if
($from
>
$to)
{
return
true;
}
else
{
return
false;
}
}
>
$date1
=
"2009-10-13";
$date=
mktime(0,
0,
0,
date("m",
strtotime($date1)),
date("d",
strtotime($date1)),
date("Y",
strtotime($date1)));
最终取得一个日期的
Unix
时间戳$date=1255392000。
很多时候做搜索的时候,搜索的时间不能大于当前日期,比较函数的写法大致和上面一个函数相同,具体如下:
function
dateBCurrent($date){
//日期是否大于当前日期
$currentDate=date("Y-m-d");
//获取当前日期
$cYear=date("Y",strtotime($currentDate));
$cMonth=date("m",strtotime($currentDate));
$cDay=date("d",strtotime($currentDate));
$year=date("Y",strtotime($date));
$month=date("m",strtotime($date));
$day=date("d",strtotime($date));
$currentUnix=mktime(0,0,0,$cMonth,$cDay,$cYear);
//当前日期的
Unix
时间戳
$dateUnix=mktime(0,0,0,$month,$day,$year);
//待比较日期的
Unix
时间戳
if($dateUnix<=$currentUnix){
return
true;
}else{
return
false;
}
}
希望本文所述对大家的php程序设计有所帮助。

给你两个思路:
1、转换为统一的日期格式再进行比较
2、转换为统一的时间字符串格式进行比较,事实上,字符串是能够直接比较大小的,但是格式要统一,很明显的地方如
“2010-07-06 12:18”和“2010-7-6 12:18 ”
你最后截取一下字符串,然后判断月和日的长度,如果为一位数,则在前面补个0,这样格式统一了,你就可以直接比较了。

1首先,把读取出来的值转换成DateTime类型,因为字符串不能比较大小
DateTime dTimeDB1 = ConverttodateTime(数据库中的值);
DateTime dTimeDB2 = ConverttodateTime(数据库中的值);
2然后,再进行比较
使用比较方法:
if(DateTimeCompare(dTimeDB1 ,dTimeDB2) > 0)
说明:dTimeDB1 > dTimeDB2即dTimeDB1 是晚于dTimeDB2的时间

当然也可以不使用比较方法,而直接比较时间大小,就像比较数值一样


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13399979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存