PHP отнимает 1 месяц от даты, отформатированной с датой (‘m-Y’)

Я пытаюсь вычесть 1 месяц из даты.

$today = date('m-Y');

Это дает: 08-2016

Как я могу вычесть месяц, чтобы получить 07-2016?

14

Решение

 <?php
echo $newdate = date("m-Y", strtotime("-1 months"));

выход

07-2016
27

Другие решения

Предупреждение! Приведенные выше примеры не сработают, если позвонить им в конце месяца.

<?php
$now = mktime(0, 0, 0, 10, 31, 2017);
echo date("m-Y", $now)."\n";
echo date("m-Y", strtotime("-1 months", $now))."\n";

будет выводить:

10-2017
10-2017

Следующий пример даст тот же результат:

$date = new DateTime('2017-10-31 00:00:00');
echo $date->format('m-Y')."\n";
$date->modify('-1 month');
echo $date->format('m-Y')."\n";

Множество способов решения проблемы можно найти в другой ветке: PHP DateTime :: изменить сложение и вычитание месяцев

7

Попробуй это,

$today = date('m-Y');
$newdate = date('m-Y', strtotime('-1 months', strtotime($today)));
echo $newdate;
3

В зависимости от вашей версии PHP вы можете использовать объект DateTime (введен в PHP 5.2, если я правильно помню):

<?php
$today = new DateTime(); // This will create a DateTime object with the current date
$today->modify('-1 month');

Вы можете передать другую дату в конструктор, она не должна быть текущей датой. Дополнительная информация: http://php.net/manual/en/datetime.modify.php

3
По вопросам рекламы [email protected]