DateTime::diff - 如何获取周数?
DateTime::diff - how to get week number?
我在 DateTime::diff 函数
中获取 "weeks" 时遇到问题
这是我的代码:
$date1 = new DateTime("2017-05-14");
$date2 = new DateTime("2017-06-14");
$interval = $date1->diff($date2);
echo $interval->m.' '.($interval->m > 1 ? 'months' : 'month');
如果我要获得 "month" 计数,它会起作用,但我想在将其变成一个月之前获得周数:
我们一个月有 4 周(根据 Google 单位转换器 准确地说是 4.34524),如果开始日期和今天的日期之间的差异超过 4 周,它应该输出“1个月”等等..
计算天数,然后除以 7 得到一周。
试试这个代码:
$date1 = new DateTime("2017-05-14");
$date2 = new DateTime("2017-06-14");
$interval = $date1->diff($date2);
$week = floor($date1->diff($date2)->days/7);
echo $week;
if($week > 4)
{
echo $interval->m.' '.($interval->m > 1 ? 'months' : 'month');
}
代码(Demo):
$date1 = new DateTime("2017-06-1");
$date2 = new DateTime("2017-06-15");
$interval = $date1->diff($date2);
//var_export($interval);
if($interval->m>0){ // check if >= 1 month
echo "{$interval->m} month",($interval->m>1?'s':'');
}else{
$weeks=floor($interval->days/7); // if not yet 1 month, calc weeks
echo "$weeks week",$weeks!=1?'s':'';
}
// output: 2 weeks
你可以这样做得到几周,然后使条件:
$daysInAweek = 7;
$weeks = ($interval->days)/$daysInAweek;
if($weeks >= 4) {
echo 'is a month';
}
因为一周有7天
我在 DateTime::diff 函数
中获取 "weeks" 时遇到问题这是我的代码:
$date1 = new DateTime("2017-05-14");
$date2 = new DateTime("2017-06-14");
$interval = $date1->diff($date2);
echo $interval->m.' '.($interval->m > 1 ? 'months' : 'month');
如果我要获得 "month" 计数,它会起作用,但我想在将其变成一个月之前获得周数:
我们一个月有 4 周(根据 Google 单位转换器 准确地说是 4.34524),如果开始日期和今天的日期之间的差异超过 4 周,它应该输出“1个月”等等..
计算天数,然后除以 7 得到一周。 试试这个代码:
$date1 = new DateTime("2017-05-14");
$date2 = new DateTime("2017-06-14");
$interval = $date1->diff($date2);
$week = floor($date1->diff($date2)->days/7);
echo $week;
if($week > 4)
{
echo $interval->m.' '.($interval->m > 1 ? 'months' : 'month');
}
代码(Demo):
$date1 = new DateTime("2017-06-1");
$date2 = new DateTime("2017-06-15");
$interval = $date1->diff($date2);
//var_export($interval);
if($interval->m>0){ // check if >= 1 month
echo "{$interval->m} month",($interval->m>1?'s':'');
}else{
$weeks=floor($interval->days/7); // if not yet 1 month, calc weeks
echo "$weeks week",$weeks!=1?'s':'';
}
// output: 2 weeks
你可以这样做得到几周,然后使条件:
$daysInAweek = 7;
$weeks = ($interval->days)/$daysInAweek;
if($weeks >= 4) {
echo 'is a month';
}
因为一周有7天