在 php 中添加周数(十进制值)
Add weeks in decimal value in php
我正在尝试通过 strtotime() 函数将 1.5、2.5 等十进制值中的星期添加到日期。但它没有给出正确的结果。我像这样使用它:
$start_date = "2015-01-01";
$date = strtotime(date("Y-m-d", strtotime($start_date)) . " +3.5 weeks");
$date = date("Y-m-d",$date);
echo $date;
它给出 2015-02-04 作为输出。添加非十进制值时,如:
$date = strtotime(date("Y-m-d", strtotime($start_date)) . " +3 weeks");
它给出了完美的结果。
有什么想法吗?
$date = '2015-01-01';
$weeks = "2,3,4,4.5";
foreach(explode(",", $weeks) as $week) {
print $week."\n";
$hours = $week * 24 * 7;
print $hours."\n";
print date("Y-m-d", strtotime("{$date} +{$hours} hours"))."\n";
}
您可以使用此逻辑,将您的周小数点乘以或不乘以 1,2,2.5,3,3.5,然后乘以一周的小时数:
$week = 2.5;
$desired = '+ '.$week*168.' hours';
$date = strtotime($desired, $start_date);
但是,既然可以使用小时或秒整数并进行简单的加法运算,为什么还要使用字符串呢?
我正在尝试通过 strtotime() 函数将 1.5、2.5 等十进制值中的星期添加到日期。但它没有给出正确的结果。我像这样使用它:
$start_date = "2015-01-01";
$date = strtotime(date("Y-m-d", strtotime($start_date)) . " +3.5 weeks");
$date = date("Y-m-d",$date);
echo $date;
它给出 2015-02-04 作为输出。添加非十进制值时,如:
$date = strtotime(date("Y-m-d", strtotime($start_date)) . " +3 weeks");
它给出了完美的结果。
有什么想法吗?
$date = '2015-01-01';
$weeks = "2,3,4,4.5";
foreach(explode(",", $weeks) as $week) {
print $week."\n";
$hours = $week * 24 * 7;
print $hours."\n";
print date("Y-m-d", strtotime("{$date} +{$hours} hours"))."\n";
}
您可以使用此逻辑,将您的周小数点乘以或不乘以 1,2,2.5,3,3.5,然后乘以一周的小时数:
$week = 2.5;
$desired = '+ '.$week*168.' hours';
$date = strtotime($desired, $start_date);
但是,既然可以使用小时或秒整数并进行简单的加法运算,为什么还要使用字符串呢?