Question

I know I can do

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

However I want to get 3.5 months ago not three months ago. So I tried to do

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

However it does not seem to give me the correct date its giving me like September something which it should not be since its currently April.

Was it helpful?

Solution 2

echo(strtotime("-105 days"));

OTHER TIPS

The decimal throws off strtotime() as that is not a valid format it recognizes. The real issue you have is what exactly is half of a month? If you traverse February it gets really dicey.

This is somewhat easier to do using DateTime() and DateInterval() if you specify exactly what half of a month is:

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

Demo

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top