如何查找一周两天之间的天数? [英] How to finding the number of days between two days of the week?
本文介绍了如何查找一周两天之间的天数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用PHP查找两天之间非日期的天数?
How to find the number of days between two days not dates using PHP?
我知道如何获取两个日期之间的天数,但是我的输入值是日期名称(不知道日期的日期).
I know how to get the number of days between two dates, but my input values are day names (date-ignorant).
输入/输出:
星期三
和星期六
返回 3
星期日
和星期三
返回 3
推荐答案
您的任务似乎根本不需要日期函数.一个简单的查找数组就足够了.
Your task doesn't seem to require date functions at all. A simple lookup array will suffice.
- 从结束日期的整数中减去开始日期的整数值.
- 如果差异为零或更小,请加7以始终返回正确的正天数.
代码:(演示)
function daysUntil($start, $end) {
$lookup = [
'Sunday' => 0,
'Monday' => 1,
'Tuesday' => 2,
'Wednesday' => 3,
'Thursday' => 4,
'Friday' => 5,
'Saturday' => 6
];
$days = $lookup[$end] - $lookup[$start] + ($lookup[$end] <= $lookup[$start] ? 7 : 0);
return "{$days} days from {$start} to {$end}\n";
}
echo daysUntil('Wednesday', 'Saturday'); // Thursday, Friday, Saturday
echo daysUntil('Monday', 'Friday'); // Tuesday, Wednesday, Thursday, Friday
echo daysUntil('Thursday', 'Thursday'); // [assumed next week]
echo daysUntil('Friday', 'Monday'); // Saturday, Sunday, Monday
echo daysUntil('Saturday', 'Sunday'); // Sunday
echo daysUntil('Sunday', 'Saturday'); // Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
echo daysUntil('Sunday', 'Wednesday'); // Monday, Tuesday, Wednesday
输出:
3 days from Wednesday to Saturday
4 days from Monday to Friday
7 days from Thursday to Thursday
3 days from Friday to Monday
1 days from Saturday to Sunday
6 days from Sunday to Saturday
3 days from Sunday to Wednesday
或者您可以用4个函数调用替换查找数组并获得相同的结果:(演示)
function daysUntil($start, $end) {
$days = date('w', strtotime($end)) - date('w', strtotime($start));
$days += $days < 1 ? 7 : 0;
return "{$days} days from {$start} to {$end}\n";
}
这篇关于如何查找一周两天之间的天数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文