跳至$smallDate 返回 > 0
* $bigDate < $smallDate 返回 < 0
* $bigDate = $smallDate 返回 = 0
*
* @param $bigDate
* @param $smallDate
*
* @returns
*/
public static function dateCmp($bigDate, $smallDate) {
if (!self::isDate($bigDate) || !self::isDate($smallDate)) {
throw new Exception('参数不是合法的日期');
}
return strcmp($bigDate, $smallDate);
}
public static function isDate($dateTime, $checkTime = false) {
$strArray = explode(' ', $dateTime);
$date = $strArray[0];
$time = $strArray[1];
// 不是 dateTime 格式
if (!$date || !$time) {
return false;
}
$dateArray = explode('-', $date);
$year = $dateArray[0];
$month = $dateArray[1];
$day = $dateArray[2];
// 年在 1-9999 年
if (!self::_checkLimit($year, 1, 9999)) {
return false;
}
if (!self::_checkLimit($month, 1, 12)) {
return false;
}
if (!self::_checkLimit($day, 1, 31)) {
return false;
}
if ($checkTime) {
$timeArray = explode(':', $time);
$hour = $timeArray[0];
$minute = $timeArray[1];
$second = $timeArray[2];
if (!self::_checkLimit($hour, 0, 24)) {
return false;
}
if (!self::_checkLimit($minute, 0, 60)) {
return false;
}
if (!self::_checkLimit($second, 0, 60)) {
return false;
}
}
return true;
}
/**
* 检查字符串是否在 start to 的区间内
*
* @param $str
* @param $start
* @param $to
*
* @returns
*/
private static function _checkLimit($str, $start, $to) {
if ($str < $start || $str > $to) {
return false;
}
return true;
}
}
本文原创发布php中文网,转载请注明出处,感谢您的尊重!