2015-09-15 84 views
10

我想将一周中的第一天设置为星期四(不是星期天或星期一),因为这是公司的截止日期。如何在PHP中将“第一天的第一天”设置为星期四

我已经有一个代码来确定一个日期的当前周数,但它在周日或周一开始。

如何修改这些以符合我的偏好?

function findweek($date) { 
    $monthstart=date("N",strtotime(date("n/l/Y",strtotime($date)))); 
    $newdate=(date("j",strtotime($date))+$monthstart)/7; 
    $ddate=floor($newdate); 
    if($ddate != $date) { 
     $ddate++; 
    } 
    return $ddate; 
} 
+0

我正在收集你的意见..........正好你想要在我们公司工作的 –

+0

你的工作日星期四开始计数是星期四不是星期日或星期一,所以我想开始每周的计数每个月的星期四。 –

+0

@RaydenBlack看看这是否可以帮助你http://codepad.org/tI0nMQPo你可能需要调整日期时间格式 – Shehary

回答

1

这应该有效。

function findweek($date, $type = "l") { 
    $time = strtotime($date); 
    return date($type, mktime(0, 0, 0, date("m", $time) , date("d", $time)-date("d", $time)+1, date("Y", $time))); 
} 

echo findweek('2015-09-16'); 
+0

我想要的结果是将星期几的第一天设置为星期四而不是查找星期。 –

1

http://php.net/manual/en/datetime.formats.relative.php说,作为PHP版本23年6月5日,7.0.8“周始终周一开始。以前,周日也将被考虑入手一个星期。”也就是说,是你的问题根据当天是星期四还是星期四之前返回的周数可能不正确?也许尝试是这样的:

$date = new DateTime(); 
$week = intval($date->format('W')); 
$day = intval($date->format('N')); 
echo $day < 4 ? $week-1 : $week; 

如果减去1不是问题的答案,你可以玩的加法/减法,比较你知道,直到你找到正确的公式是真实的实际答案的结果。希望这可以帮助!

相关问题