[英]Strtotime range
晚上好,我不得不承認我不太了解php。 實際上,我是一個初學者,我想要以下代碼的幫助。
此時,如果您今天下達具有begin_valability的訂單,則會收到消息“明天的最小接受開始date_valability”是“可以”。
如果begin_valability值大於,我將無法下訂單
2017-12-31。
先感謝您
#defined API * required
if (isset ($this -> _ params ['begin_valability'])) {
if ($this -> _ params ['begin_valability']! = null) {
#validate if begin_valability is valid
if ($this-> validateDate ($this -> _ params, 'Y-m-d') == false) {
WebApp_Mobile_Messages :: error ( '125');
return;
}
$today = date("Y-m-d");
if ($today> = $this -> _ params ['begin_valability']) {
WebApp_Mobile_Messages :: error (0, "Minimum accepted start date_valability" . date("Y-m-d", strtotime("+1 day" )));
return;
}
}
PHP DateTime實例具有可比性。
可以以各種方式將datetime字符串轉換為DateTime實例,其中將所述datetime字符串作為參數傳遞以初始化新的DateTime對象。
$yearEnd = new DateTime('2017-12-31');
$beginValability = new DateTime($this->_params['begin_valability']);
下訂單前添加保護條款:
if ($beginValability > $yearEnd) return;
我會考慮將日期轉換為DateTime對象或strtotime整數值 。 這樣就可以輕松比較兩個不同的日期。
例:
/* Defines before class definition */
define('MIN_VALABILITY_DATE_INTERVAL', strtotime('+1 days')); /* 1 day interval (as int) */
define('MAX_VALABILITY_DATE_STATIC', strtotime('2017-12-31')); /* Max specific date (as int) */
define('MAX_VALABILITY_DATE_INTERVAL', strtotime('+10 days')); /* 10 day interval (as int) */
/* ...function() */
if(!empty($this->_params['begin_valability'])){
if($this->validateDate($this->_params['begin_valability'], 'Y-m-d')){
$begin_valability = strtotime($this->_params['begin_valability']);
if($begin_valability >= MIN_VALABILITY_DATE_INTERVAL && $begin_valability <= MAX_VALABILITY_DATE_STATIC){
/* succsess - do something */
}else /* date out of range */{
WebApp_Mobile_Messages::error('');
}
}else /* invalid date */{
WebApp_Mobile_Messages::error('125');
}
}else /* begin_valability is empty */{
WebApp_Mobile_Messages::error('');
}
return;
/* function end */
編輯: 顯然沒有必要使用這些定義,如果這些值不會在其他地方引用,則最好使用局部變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.