2013-06-25 58 views
0

是否可以使用php自動更新每週的日期?例如,我有每週一更新的每週預測。標題會顯示「6月28日星期五預測」。自動更改日期周(php)

<h1>- Forecast for Friday June 28th -</h1> 

然後在下面的星期一,我想自動更新標題中的日期到下一個發生的星期五。

這是可能的PHP?

+0

很容易獲得日期(「年月日」)函數的日期,但是對於日子裏,你可能會考慮PHP庫或本地擴展 – mpm

+0

於是就Satuday 29日,它會顯示預測前一天? – MichaelRushton

+0

是的,週六29日它仍會顯示週五的預測。這是整個週末的預測。 – zer0ruth

回答

1

這是你在找什麼:

switch (date('N')) 
{ 

    case 5: 
    $time = time(); 
    break; 

    case 6: 
    case 7: 
    $time = strtotime('last Friday'); 
    break; 

    default: 
    $time = strtotime('next Friday'); 

} 

echo date('l F jS', $time); 

檢查date功能不同的格式選項。

雖然你確定要等到週一才顯示下週五的預測嗎?當然它應該更新到下週的星期六(否則你會預測過去的日期)?如果是這樣,只需刪除case 6/case 7部分。

+0

將預測視爲週五,週六和週日的預測,而不僅僅是週五。這是一個週末預測。 使用字符串時間函數,並將其放入一個開關讓我控制什麼顯示很好。謝謝@MichaelRushton – zer0ruth

+0

啊,我明白了。樂於幫助。 – MichaelRushton

0

是的。看看date()用於格式化和strtotime()快速創建相對時間戳:

下面應該讓你開始:

echo date('l F jS', strtotime('monday')); 

注:如果你使用PHP> 5.3,你應該看看DateTime class

0

這是非常簡單的編碼解釋儘可能簡單。如果$ today不是星期五,腳本會計算直到下週五還有多少天。

希望能幫到你!

<?php 
$now = time(); // current timestamp 
$today = date("w", $now); // "w" returns the weekday (number) 
$friday = 5; // 5th day of the week (sunday = 0) 

if ($today == $friday) { 
    $ts  = $now; // today is friday, don't change the timestamp 
    $daysLeft = 0; // no days left! 
} else { 
    if ($today == 6) { 
     $daysLeft = 6; // saturday is bigger then friday 
    } else { 
     $daysLeft = $friday-$today; // get the left days 
    } 

    $ts = $now + 84600 * $daysLeft; // now + seconds of one day * days left 
} 
?> 

<h1> 
    - Forecast for <?php echo date("D M d", $ts) ?>- 
</h1> 
0
$currDay = date('w'); 
$delta = $currDay==6 ? 6 : 5-$currDay; 

$date = new DateTime(); 
$date->add(new DateInterval('P'.$delta.'D')); 
echo $date->format('D M jS');