• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

需要一个判断函数,返回是否合法时间,PHP

php 搞代码 4年前 (2022-01-22) 16次浏览 已收录 0个评论
文章目录[隐藏]
  1. 需要写一个函数isValidDate($date), 条件如下:

<code>function isValidDate($date){    //1. $date 是本周时 +  time()要在$date前一天的18:00之前 = true        //2. $date 为下周时 +  time()要在本周四下午六点后  = true        //3. 其余返回false.    (注:一周从周一开始)        $orderTime = strtotime($date);    $now = time();    if(date('W',$orderTime) == date('W',$now) && (strtotime($date,$now) - $now) > 86400/4)   //预订前一天的18:00,截止预订    {            <mark>6来源gaodaimacom搞#^代%!码网</mark><strong>搞gaodaima代码</strong>return true;    }    if(date('W',$orderTime) == date('W',$now) + 1 && $now > strtotime('saturday 18:05 -2 day',$now)) //预订第二周,周四下午六点及之后    {        return true;    }        return false;}</code>

其中,我写第二个条件的时候,发现条件覆盖的时间好像有点问题,想看下各位的见解哈。

回复内容:

  1. 需要写一个函数isValidDate($date), 条件如下:

<code>function isValidDate($date){    //1. $date 是本周时 +  time()要在$date前一天的18:00之前 = true        //2. $date 为下周时 +  time()要在本周四下午六点后  = true        //3. 其余返回false.    (注:一周从周一开始)        $orderTime = strtotime($date);    $now = time();    if(date('W',$orderTime) == date('W',$now) && (strtotime($date,$now) - $now) > 86400/4)   //预订前一天的18:00,截止预订    {            return true;    }    if(date('W',$orderTime) == date('W',$now) + 1 && $now > strtotime('saturday 18:05 -2 day',$now)) //预订第二周,周四下午六点及之后    {        return true;    }        return false;}</code>

其中,我写第二个条件的时候,发现条件覆盖的时间好像有点问题,想看下各位的见解哈。

怎么感觉这是要强行给别人做面试题的呢?既然条理都能列 123 了,实现应该不是问题吧。。。

安装 Carbon

<code class="php">use Carbon\Carbon;/** * 校验日期 * @param  string  $date 日期 * @return boolean        */function isValidDate($date){    // $date 是本周时 +  time()要在$date前一天的18:00之前 = true    if (Carbon::parse($date)->format('W') == Carbon::now()->format('W') &&        time() subDay(1)->hour(18)->minute(0)->timestamp    ) {        return true;    }    // $date 为下周时 +  time()要在本周四下午六点后  = true    elseif (        Carbon::parse($date)->format('W') == Carbon::now()->addWeek(1)->format('W') &&        time() > Carbon::now()->startOfDay()->addDay(3)->hour(18)->minute(0)->timestamp    ) {        return true;    }    return false;}</code>

简单改一下题主的 if 语句 return

<code>function isValidDate($date){    //1. $date 是本周时 +  time()要在$date前一天的18:00之前 = true        //2. $date 为下周时 +  time()要在本周四下午六点后  = true        //3. 其余返回false.    (注:一周从周一开始)        $orderTime = strtotime($date);    $now = time();    if(date('W',$orderTime) === date('W',$now)) // 当前周    {            // time()要在$date前一天的18:00之前 = true        return $now  strtotime(date('Y-m-d 18:00:00',strtotime( '+'. 4-date('w') .' days' )));    }    return false;}</code>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:需要一个判断函数,返回是否合法时间,PHP
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址