1.工作态度 ) :
vi中使用过程中无意增加了i 导致sql出错,复制粘贴错位置致使sql出错。
使用vim要非常注意,一不小心就会有bug,且测试不一定测试出来。如下两处错误说明 工作态度不够认真
2.
3.
static public function validate_Date($date, $format = 'Y-m-d H:i:s'){
$nums = strtotime($date);
if($nums){
$d = date($format, strtotime($date));
return $d == $date ;
}else{
return false;
}
}
//组织查询时间区间数据
$q_start = null;
$q_end = null;
if( empty($useid) && !empty($ps['timespan'])){
$timespan_arr = json_decode($ps['timespan'],true);
if(!$timespan_arr || !array_key_exists( 'start',$timespan_arr)
|| !array_key_exists( 'end',$timespan_arr)
|| !Specuser::validate_Date($timespan_arr['start'])
|| !Specuser::validate_Date($timespan_arr['end'])
|| strtotime($timespan_arr['end'])-strtotime($timespan_arr['start'])<0
|| strtotime($timespan_arr['end'])-strtotime($timespan_arr['start'])>7776000 ){
//timespan转数组失败或数组key中不含有start、end或日期格式不对或日期区间大约90(86400*90)天或 减为负数,则报错返回
$data->e = Error::get('ERR_PARAMS');
$data->cost = $this->get_cost();
return $data;
}else{
$q_start = $timespan_arr['start'];
$q_end = $timespan_arr['end'];
}
}
转载: php检测合法的日期字符串 http://blog.youkuaiyun.com/ctc506020246/article/details/22353461
在网上看了这么多解答,还是php官网的这种方法一最好用,感谢glavic at gmail dot com
但是官网的方法只适合PHP>5.3的,对于比较低级的版本会出现错误:Call to undefined method DateTime::createfromformat()
解决方法一:
http://www.reportico.org/swsite/site/forum/viewtopic.php?f=7&t=9161
解决方法二:
- function checkDatetime($str, $format="Y-m-d H:i:s"){
- $unixTime = strtotime($str);
- $checkDate = date($format, $unixTime);
- if($checkDate == $str)
- return 1;
- else
- return 0;
- }
With DateTime you can make the shortest date&time validator for all formats.
- <?php
- function validateDate($date, $format = 'Y-m-d H:i:s')
- {
- $d = DateTime::createFromFormat($format, $date);
- return $d && $d->format($format) == $date;
- }
- var_dump(validateDate('2012-02-28 12:12:12')); # true
- var_dump(validateDate('2012-02-30 12:12:12')); # false
- var_dump(validateDate('2012-02-28', 'Y-m-d')); # true
- var_dump(validateDate('28/02/2012', 'd/m/Y')); # true
- var_dump(validateDate('30/02/2012', 'd/m/Y')); # false
- var_dump(validateDate('14:50', 'H:i')); # true
- var_dump(validateDate('14:77', 'H:i')); # false
- var_dump(validateDate(14, 'H')); # true
- var_dump(validateDate('14', 'H')); # true
- var_dump(validateDate('2012-02-28T12:12:12+02:00', 'Y-m-d\TH:i:sP')); # true
- # or
- var_dump(validateDate('2012-02-28T12:12:12+02:00', DateTime::ATOM)); # true
- var_dump(validateDate('Tue, 28 Feb 2012 12:12:12 +0200', 'D, d M Y H:i:s O')); # true
- # or
- var_dump(validateDate('Tue, 28 Feb 2012 12:12:12 +0200', DateTime::RSS)); # true
- var_dump(validateDate('Tue, 27 Feb 2012 12:12:12 +0200', DateTime::RSS)); # false
- # ...
With DateTime you can make the shortest date&time validator for all formats.
- <?php
- function validateDate($date, $format = 'Y-m-d H:i:s')
- {
- $d = DateTime::createFromFormat($format, $date);
- return $d && $d->format($format) == $date;
- }
- var_dump(validateDate('2012-02-28 12:12:12')); # true
- var_dump(validateDate('2012-02-30 12:12:12')); # false
- var_dump(validateDate('2012-02-28', 'Y-m-d')); # true
- var_dump(validateDate('28/02/2012', 'd/m/Y')); # true
- var_dump(validateDate('30/02/2012', 'd/m/Y')); # false
- var_dump(validateDate('14:50', 'H:i')); # true
- var_dump(validateDate('14:77', 'H:i')); # false
- var_dump(validateDate(14, 'H')); # true
- var_dump(validateDate('14', 'H')); # true
- var_dump(validateDate('2012-02-28T12:12:12+02:00', 'Y-m-d\TH:i:sP')); # true
- # or
- var_dump(validateDate('2012-02-28T12:12:12+02:00', DateTime::ATOM)); # true
- var_dump(validateDate('Tue, 28 Feb 2012 12:12:12 +0200', 'D, d M Y H:i:s O')); # true
- # or
- var_dump(validateDate('Tue, 28 Feb 2012 12:12:12 +0200', DateTime::RSS)); # true
- var_dump(validateDate('Tue, 27 Feb 2012 12:12:12 +0200', DateTime::RSS)); # false
- # ...