我有這樣的情況。我存儲在數據庫字符串,像這樣:如何計算PHP中兩個日期之間的營業日數?
$string: 1,1,1,1,1,1,0
這意味着:星期日是0(假日),所有其他的日子(星期一......星期六)均爲1
然後,我有兩個日期:今天(例如:2012-09-07)和一些結束日期(2012-10-04)。
我想知道我應該怎麼做才能獲得今天和這個結束日期之間的工作日總數(扣除假期)(在我的例子中是23天)?我們應該使用存儲在數據庫中的字符串。
我有這樣的情況。我存儲在數據庫字符串,像這樣:如何計算PHP中兩個日期之間的營業日數?
$string: 1,1,1,1,1,1,0
這意味着:星期日是0(假日),所有其他的日子(星期一......星期六)均爲1
然後,我有兩個日期:今天(例如:2012-09-07)和一些結束日期(2012-10-04)。
我想知道我應該怎麼做才能獲得今天和這個結束日期之間的工作日總數(扣除假期)(在我的例子中是23天)?我們應該使用存儲在數據庫中的字符串。
你試過了date_diff()嗎? http://php.net/manual/en/function.date-diff.php
我不認爲這將提供他想要的確切輸出。他想從計算中扣除星期天,這意味着每週6天不是7 – sikas
$workdays = explode(",", "1,1,1,1,1,1,0"); // turn string to array (Monday to Sunday)
$days = 0;
$time = strtotime("2012-09-07");
$end_time = strtotime("2012-10-04");
while ($time < $end_time)
{
$day_of_week = date("N", $time) - 1; // 0 = Monday, 6 = Sunday
if ($workdays[$day_of_week] == 1)
{
$days++;
}
$time = strtotime("+1 day", $time); // add one day to time
}
這應該爲你工作。您可能需要根據其是否包含在內,是否應該啓動等方式對其進行修改。
請問您是否可以包含您的代碼,這很難讓您瞭解。 – jtheman
看看這裏:http://stackoverflow.com/questions/336127/calculate-business-days,它看起來比你的方法更有前途,1,1,1,1,1,1,0 – Najzero
謝謝jtheman。我想這個問題的解決方案,但我不能。所以我沒有編碼。 –