PHP语句日期比较问题 如何在提交页面的时候比较本页面表单中两个日期startdate与enddate的大小,并做出判断。有没有不管date是什么类型都能转换为可以比较大小的类型的日期函数?用php语句写,本人不会js跟ajax,谢谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你还是应该说明 startdate和enddate的格式,我想这没有什么困难 用PHP的时间戳,$start=strtotime("startdate");$end=strtotime("enddate");date('Y-m-d H:i:s',$start) 时间戳转为时间;需要注意的是startdate最好先写成2008-8-20或者英文的格式才识别。 就是类似于Apr/20/2012这样的格式的。 一般是使用 int(10) unsigned 这种类型,直接比较就OK了 比较的时候当然得对数字int进行比较(rczjp 说的就是这个)。楼主想不管什么时间格式都进行比较,那么就得考虑把各种各样的时间格式转为数字int呀!如果时间为标准时间格式(不能是中文的),就可以直接用strtotime()转换为数字int。写一个函数进行比较呗! 有没有例子啊假如是$date1 = "Apr/13/2012";$date2 = "Apr/30/2012";怎么比较呢? strtotime() 不能转化 Apr/20/2012 这种格式的日期,需要先吧 Apr转换为 数组如 6/20/2012 <?phpfunction getTime($date){$mon = array('Jan' => 1,'Feb' => 2,'Mar' => 3,'Apr' => 4,'May' => 5,'June'=> 6,'July'=> 7,'Aug' => 8,'Sept'=> 9,'Oct' => 10,'Nov' => 11,'Dec' => 12);$m = substr($date, 0, strpos($date, '/'));$good = str_replace($m, $mon[$m], $date);// 返回整形的时间戳return strtotime($good);}$date1 = "Apr/13/2012";$date2 = "Apr/6/2012";// 4月13号比4月16号大,结果为truevar_dump( getTime($date1) > getTime($date2) ); [User:liangdong Time:13:54:44 Path:~/php]$ php date.php 2012/7/2[User:liangdong Time:13:54:46 Path:~/php]$ cat date.php <?phpfunction str_to_time($str_date) { $mon_name = array( "Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec" ); $mon_index = range(1, 12); $str_date = str_replace($mon_name, $mon_index, $str_date); return $str_date;}echo str_to_time("2012/July/2");?> cat: cat: No such file or directory<?phpfunction str_to_time($str_date) { $mon_name = array( "Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec" ); $mon_index = range(1, 12); $str_date = str_replace($mon_name, $mon_index, $str_date); return @strtotime($str_date);}echo str_to_time("2012/July/2");?> 非常谢谢你,如果判断错误了可以用onblur把焦点定位在其中一个日期框框里面吗,同时把里面的内容设为空,让用户重新填写。谢谢了 $timeStrs=array('Apr 5 2012','Apr 5 2012','4/5/2012','2012/4/5',);foreach($timeStrs as $timeStr ){ echo $timeStr."--> ".date('Y-m-d',strtotime($timeStr)).'<br/>';}Apr 5 2012 --> 2012-04-05Apr 5 2012 --> 2012-04-054/5/2012 --> 2012-04-052012/4/5 --> 2012-04-05直接把这个/干掉我想更省事吧!echo date('Y-m-d',strtotime(str_replace('/',' ','Apr/20/2012'))); LAMP 技术践行者的15课(2) 150分求教分割字符串问题 非常经典的问题,php搜索出来的值如何传给javascript呢??? PHP处理汉字的问题 哪里有PHP视频视频播放代码,最好 支持多个格式,能直接用网址打开视频。 关于一个checkbox的checked问题 页面必须要放个参数才能运行,为什么呀?我放个空页在网站上测试也必须加个参数 一个表单中可否放入两个提交按钮,分别提交到不同的页面中去? 关于扩展gd的问题 怎样同时传递两个变量啊! 如何不用正则,提取网页中的指定标签的信息 fgetcsv读取不了中文
如果时间为标准时间格式(不能是中文的),就可以直接用strtotime()转换为数字int。
写一个函数进行比较呗!
假如是$date1 = "Apr/13/2012";
$date2 = "Apr/30/2012";
怎么比较呢?
如 6/20/2012
function getTime($date)
{
$mon = array(
'Jan' => 1,
'Feb' => 2,
'Mar' => 3,
'Apr' => 4,
'May' => 5,
'June'=> 6,
'July'=> 7,
'Aug' => 8,
'Sept'=> 9,
'Oct' => 10,
'Nov' => 11,
'Dec' => 12
);$m = substr($date, 0, strpos($date, '/'));
$good = str_replace($m, $mon[$m], $date);
// 返回整形的时间戳
return strtotime($good);
}
$date1 = "Apr/13/2012";
$date2 = "Apr/6/2012";
// 4月13号比4月16号大,结果为true
var_dump( getTime($date1) > getTime($date2) );
2012/7/2[User:liangdong Time:13:54:46 Path:~/php]$ cat date.php
<?php
function str_to_time($str_date) {
$mon_name = array(
"Jan", "Feb", "Mar",
"Apr", "May", "June",
"July", "Aug", "Sept",
"Oct", "Nov", "Dec"
);
$mon_index = range(1, 12); $str_date = str_replace($mon_name, $mon_index, $str_date);
return $str_date;
}echo str_to_time("2012/July/2");?>
<?php
function str_to_time($str_date) {
$mon_name = array(
"Jan", "Feb", "Mar",
"Apr", "May", "June",
"July", "Aug", "Sept",
"Oct", "Nov", "Dec"
);
$mon_index = range(1, 12); $str_date = str_replace($mon_name, $mon_index, $str_date);
return @strtotime($str_date);
}echo str_to_time("2012/July/2");?>
$timeStrs=array(
'Apr 5 2012',
'Apr 5 2012',
'4/5/2012',
'2012/4/5',
);
foreach($timeStrs as $timeStr ){
echo $timeStr."--> ".date('Y-m-d',strtotime($timeStr)).'<br/>';
}Apr 5 2012 --> 2012-04-05
Apr 5 2012 --> 2012-04-05
4/5/2012 --> 2012-04-05
2012/4/5 --> 2012-04-05直接把这个/干掉我想更省事吧!echo date('Y-m-d',strtotime(str_replace('/',' ','Apr/20/2012')));