2013-12-18 26 views
0

我試圖使用代碼發現在PHP4.0最後一個工作日

$mnt = "Apr 2013" 
echo date('d-M-Y', strtotime('last week day', strtotime($mnt))); 

找到最後一個工作日,但它顯示11-Apr-2013

請幫我找什麼地方出了錯。

在此先感謝。

+0

請你解釋我是什麼讓你放棄投票下來? – user2979046

+0

請澄清,如果你想找到月份的最後一天或是工作日的月份的最後一天。即如果31日是星期一,這是您需要的數據。 –

+0

@Andrew仍然是相同的結果。它在php 4中工作嗎? – user2979046

回答

2

該功能將在PHP> = 4.x的版本可能工作:

function lastWeekDay($mnt) { 
    $result = strtotime("1 $mnt"); 
    $result = mktime(0, 0, 0, date('n', $result) + 1, 0, date('Y', $result)); 
    while (in_array(date('D', $result), array('Sat', 'Sun'))) $result -= 86400; 
    return $result; 
} 

echo date('d-M-Y', lastWeekDay('Apr 2013')); # 30-Apr-2013 

demo

1
<?php 
function lastWeekDay ($mnt) 
{ 
    $result = strtotime("last day of $mnt"); 
    $day = date('D', $result); 
    if ('Sun' === $day) 
    { 
     $result -= 86400 * 2; 
    } 
    if ('Sat' === $day) 
    { 
     $result -= 86400; 
    } 
    return $result; 
} 

echo date('d-M-Y', lastWeekDay('Apr 2013')); 
+0

但是在相對格式中有一些「週日」的概念,所以使用strtotime應該是某種形式的選項? – Nanne

+0

它返回'-1'作爲回答 – user2979046

+0

那麼'''strtotime('2013年4月的最後一個工作日');'''對我來說會產生錯誤。 – jameslafferty

相關問題