2011-10-24 81 views
0

如何隨時間推移而動態更新每週的日期範圍值。我想在週一開始一週,在週日結束。使用PHP計算日期

示例輸出將需要2011-10-24,2011-10-31

使用下面我只得到了一個月的VS YYYY-MM-DD

<?php 
    $today = getdate(); 
    $weekStartDate = $today['mday'] - $today['mon']+1; 
    $weekEndDate = $today['mday'] - $today['wday']+7; 
    echo "week start date:".$weekStartDate; 
    echo "<br/>"; 
    echo "week end date:".$weekEndDate; 
?> 
+0

http://codepad.org/xHtWe3QR –

+1

看一看PHP的DateTime類。 http://php.net/manual/en/book.datetime.php –

+1

10月24日這周是從24日到30日,而不是31日。 – deceze

回答

2

日期正如評論中所述,請使用DateTime。的date('N')(星期幾,1 - 7)

<?php 
$dt = new DateTime('Monday this week'); // yes, DateTime is that awesome 
$interval = new DateInterval('P6D'); // 6 days 
?> 

<dl> 
    <dt>Week start date:</dt> 
    <dd><?php echo $dt->format('Y-m-d') ?></dd> 

    <dt>Week end date:</dt> 
    <dd><?php echo $dt->add($interval)->format('Y-m-d') ?></dd> 
</dl> 
+0

甜美的感謝之人 – RonnieT

0

利用:

$monday = mktime(0, 0, 0, date('n'), date('j') - (date('N') - 1)); 
$sunday = mktime(0, 0, 0, date('n'), date('j') - (date('N') - 7)); 

echo date('Y-m-d', $monday); 
echo date('Y-m-d', $sunday);