从三个半月前获取日期

时间:2014-04-30 16:18:15

标签: php date date-math

我知道我能做到

$threemonthsago = date("Y-m-d", strtotime("-3 month"));
echo "$threemonthsago";

但是我想要在3.5个月前获得而不是三个月前。所以我试着做了

$threemonthsago = date("Y-m-d", strtotime("-3.5 month"));
echo "$threemonthsago";

然而它似乎没有给我正确的日期,它给了我像九月的东西,它不应该是自它目前的四月。

1 个答案:

答案 0 :(得分:2)

小数点击strtotime(),因为它不是它识别的有效格式。你真正的问题是半个月到底是什么?如果你穿越二月它真的很冒险。

如果您准确指定一个月的半月,使用DateTime()DateInterval()会更容易一些:

$date = new DateTime();
$new_date = $date->sub(new DateInterval('P3M15D'));
echo $new_date->format('Y-m-d');

Demo