如果当天是星期五,我需要将运送日更改为下周二。这是我的代码。
$tomorrow = mktime(0,0,0,date("m"),date("d")+$tt+1,date("Y"));
$duedate = date("d - M D", $tomorrow);
$str = substr($duedate, 9, 11);
$fri='Fri';
$sat='Sat';
if(strcmp($str,$fri)==0)
{
$tomorrow = mktime(0,0,0,date("m"),date("d")+4,date("Y"));
$duedate = date("d - M D", $tomorrow);
}
但是我觉得if循环没有正确地检查星期五。所以在$tommorrow
中添加4也没有用。任何指针?
答案 0 :(得分:3)
这应该足够了:
if (date('N') == 5) {
//set duedate to next Tuesday
$DateTime = new DateTime('now');
$DateTime->add(new DateInterval('P4D')); //add 4 days
$dueDate = $DateTime->format('your format');
}
N给出了ISO标准化数字,周五为5。日期不需要第二个参数,在这种情况下它需要当前的时间戳。
有关DateTime的详细信息,请参阅http://www.php.net/manual/en/book.datetime.php。
答案 1 :(得分:2)
$tomorrow = mktime(0,0,0,date("m"),date("d")+$tt+1,date("Y"));
$duedate = date("d - M D", $tomorrow);
if (date("N", $tomorrow) == 5) {
$tomorrow = mktime(0,0,0,date("m"),date("d")+4,date("Y"));
$duedate = date("d - M D", $tomorrow);
}
答案 2 :(得分:1)
首先尝试使用日期函数提取日期,例如:
date('D'); // Mon through Sun
或
date('N'); // 1 (for Monday) through 7 (for Sunday)
其次使用strtotime函数将日期添加到日期,例如:
strtotime("+4 day",$date); // Add 4 days to date
答案 3 :(得分:1)
$nextTuesday = strtotime('next tuesday');