No, because now() also returns the time for the timezone MySQL is configured in. Different software, same problem.
No, as @chorn suggests you should use the
DateTime1 class for that
$row['date'] = (new DateTime('+1 month'))->format('Y-m-d H:i:s');
Also you need to really careful with adding and subsctracting months, as for example according to PHP January 31st + 1 month = March 3rd, since February only has 28 days and the remaining 3 days "roll over" into March.
It's best to not use months but just always use something like 30 days instead, much easier to explain to non-technical people as well, who would probably expect that January 31st + 1 month = February 28.
1 or even better,