在 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);

但是,既然可以使用小时或秒整数并进行简单的加法运算,为什么还要使用字符串呢?