2011-02-09 86 views
0

我想获得每周的第一个日期?
即。我如何获得当前日期的第一天

if 2011-01-01 then 2011-01-01 
    if 2011-01-06 then 2011-01-01 
    if 2011-01-20 then 2011-01-14 
    if 2011-01-21 then 2011-01-21 

对不起,误导和疑惑混淆。

我只想得到一周的第一天的日期,即。 1或7或14或21或28

+0

您是否认为周一或周日是您每周的第一天?这将对答案产生影响。 – 2011-02-09 07:11:56

+0

可能重复[获取当日星期一和星期五(PHP)]的日期](http://stackoverflow.com/questions/1431631/get-date-for-monday-and-friday-for-the-current-周-php) – 2011-02-09 07:31:44

+0

你还没有正确定义“一周的第一天”。 “1或7或14”没有多大意义。 – deceze 2011-02-09 07:47:38

回答

2

如果你认为周一

echo date('Y-m-d',strtotime("last monday", strtotime('tomorrow',strtotime($date)))); 

的第一天,你可以用一周的任何一天更换monday

0
$wk_day=date('w'); 
switch ($wk_day) 
{ 
    case 0: $diff = -1;  break; 
    case 1: $diff = 0;   break; 
    default :$diff = $wk_day-1; break; 
} 
echo date('Y-m-d', time()-(86400*$diff)); 
0
$current_date =date('Y-m-d'); 

$year = date('Y'); 
$month = date('m'); 
$day = date('d'); 

$first_day = get_week_start($year, $month, $day); 

$weeks_first_day =date('Y-m-d',$first_day); 


    function get_week_start($year, $month, $day) 
    { 
    $timestamp = mktime(0, 0, 0, $month, $day, $year); 
    return $timestamp = mktime(0, 0, 0, $month, date('d', $timestamp)-date('w', $timestamp), $year); 
    } 

你可以得到周第一天,从$ weeks_first_day,您还可以更改格式什么都!

这里星期天是起始日期

2

到目前为止,最直接的办法就是减去星期几的数(0 =周日'w',1 =周一'N')从天日期:

$date = strtotime('2011-02-09'); 
$sunday = strtotime('-' . date('w', $date) . ' days', $date); 
$monday = strtotime('-' . (date('N', $date) - 1) . ' days', $date); 
相关问题