2014-01-21 67 views
0

我有這個,昨天它運行良好,但不是今天。如何獲得本週的5個日期與PHP或jQuery的?

$current_dayname = date("l");  
$datemon = date("m-d-Y",strtotime('monday this week')); 
$datetue = date("m-d-Y",strtotime("tuesday this week")); 
$datewed = date("m-d-Y",strtotime("wednesday this week")); 
$datethu = date("m-d-Y",strtotime("thursday this week")); 
$datefri = date("m-d-Y",strtotime("friday this week")); 

昨日,$ datemon到$ datefri將通過2014年1月24日獲得的2014年1月20日的值,但今天才週二至週五工作和週一越來越下星期一的日期,而不是昨天。

我怎樣才能得到本週5個工作日的日期?所以如果是星期三,例如5個變量過去2天應該是2天,當天1天,未來幾天應該是2天。明白我的意思了嗎?

我會猜測有人會問,星期是星期一還是星期日開始。只要腳本起作用就沒有關係,但從星期一開始的一週更可取。

+0

'星期一此week'輸出'串(10) 「2014年1月20日」'爲了我。 – Prisoner

+0

hm,''本週一星期一''仍然給我昨天的日期。也許地區差異? –

+0

也許你可以使用'+天'的格式,如strtotime('+1天'); –

回答

1

更簡單的方式來獲得這些日期可能是這樣的:

$today = time(); 
$wday = date('w', $today); 
$datemon = date('m-d-Y', $today - ($wday - 1)*86400); 
$datetue = date('m-d-Y', $today - ($wday - 2)*86400); 
$datewed = date('m-d-Y', $today - ($wday - 3)*86400); 
$datethu = date('m-d-Y', $today - ($wday - 4)*86400); 
$datefri = date('m-d-Y', $today - ($wday - 5)*86400); 

我也建議使用數組,而不是5個不同的變量,但是這是一個獨立的問題。

+0

謝謝,它的工作。 – leoarce

0

簡單DateTime::setISODate()例如:

$dt = new DateTime(); 
$dates = []; 
for ($d = 1; $d <= 5; $d++) { 
    $dt->setISODate($dt->format('o'), $dt->format('W'), $d); 
    $dates[$dt->format('D')] = $dt->format('m-d-Y'); 
} 
print_r($dates); 

將輸出:

Array 
(
    [Mon] => 01-20-2014 
    [Tue] => 01-21-2014 
    [Wed] => 01-22-2014 
    [Thu] => 01-23-2014 
    [Fri] => 01-24-2014 
) 

demo

相關問題