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

但是,当您可以只玩小时或秒整数并进行简单的加法时,为什么要玩字符串?