首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Strtotime范围

Strtotime范围
EN

Stack Overflow用户
提问于 2017-12-14 04:05:42
回答 2查看 247关注 0票数 1

晚上好,我必须承认我对php不是很了解。事实上,我是一个初学者,我需要一些关于以下代码的帮助。

此时,如果您今天使用begin_valability下了订单,您会收到消息"Minimum accepted date_valability“is tomorrow”,这是OK。

如果begin_valability值大于,我希望不能下任何订单

2017-12-31。

提前谢谢你

代码语言:javascript
复制
#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;
                }
             }   
EN

回答 2

Stack Overflow用户

发布于 2017-12-14 04:19:06

PHP DateTime实例具有可比性。

日期时间串可以以各种方式转换为datetime实例,其中包括将所述日期时间串作为参数传递以初始化新的DateTime对象。

代码语言:javascript
复制
$yearEnd = new DateTime('2017-12-31');

$beginValability = new DateTime($this->_params['begin_valability']);

下单前添加防护条款:

代码语言:javascript
复制
if ($beginValability > $yearEnd) return;
票数 0
EN

Stack Overflow用户

发布于 2017-12-14 04:47:16

我会考虑将日期转换为DateTime objectsstrtotime integer values。这样就可以很容易地比较两个不同的日期。

示例:

代码语言:javascript
复制
/* 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 */

EDIT:显然没有必要使用这些定义,如果这些值不会在其他地方引用,那么使用局部变量可能会更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47801318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档