周六下午4:00后禁用星期一

时间:2014-02-04 01:40:30

标签: php datetime

我已经建立了一个小功能,可以禁用我的js日历上的日期(这可以解释为-1个月),下午4点之后将禁用以下日期。我为此建立的业务是在星期一到星期六开放的,所以当星期六它会在周日停用但实际上需要禁用星期一(他们的下一个工作日)时会出现问题。我如何编辑我的代码以允许周一在周六下午4:00之后被禁用,同时保留其他日期?

我的工作代码:

$datetime = new DateTime();

$deadline = new DateTime("today 4:00PM");

$today = new Datetime('today');

$todays = $today->format('Y-m-d');

$db_date = strtotime($todays);

$todaydisable = date('Y-m-d', strtotime("-1 month", $db_date));

if($datetime > $deadline){
    $tomorrow = Date("Y,m,d", strtotime("+1 day -1 month "));

} else {
    $tomorrow = NULL;
}

尝试下面的代码无法正常工作它会在第二天停用,但如果在星期六4点之后不会禁用星期一

            $now      = new DateTime("-1 month");
        $deadline = clone $now;
        $deadline->setTime(4, 00);
        if ($now > $deadline) {
            $now->modify('+1 day');
            $when = ('-1 month Saturday' === $now->format('l')) ? '-1 month Next Monday' : '-1 month Tomorrow';
            $tomorrow = new DateTime($when);
            $tomorrowFormat = $tomorrow->format('Y,m,d');
        } else {
            $tomorrowFormat = NULL;
        }

2 个答案:

答案 0 :(得分:1)

<?php
$now      = new DateTime();
$deadline = clone $now;
$deadline->setTime(16, 00);
if ($now > $deadline) {
    $now->modify('+1 day');
    $when = ('Saturday' === $now->format('l')) ? 'Next Monday' : 'Tomorrow';
    $tomorrow = new DateTime($when);
}

See it in action

答案 1 :(得分:1)

<?php
$now= new DateTime();
$deadline = clone $now;
$deadline->setTime(16, 00);
if ($now > $deadline) {
    //$now->modify('+1 day');
    $when = ('Saturday' === $now->format('l')) ? '-1 Month Next Monday' : '-1 Month Tomorrow';
    $tomorrow = new DateTime($when);
}

刚刚使用John Conde代码,添加-1月,应该可行。打印2014-01-24,所以基本上它应该禁用jscal中的星期一24 feb