PHP: самый простой способ получить дату месяца за 6 месяцев до первого?

Можно ли комбинировать сокращенную нотацию с регулярными обозначениями?

blockquote>

Да. Определение свойства может быть любым из следующих:

PropertyDefinition :
    IdentifierReference
    CoverInitializedName
    PropertyName : AssignmentExpression
    MethodDefinition

Источник: Спецификация языка ECMAScript 2015

И если да, есть ли какие-либо gotchas, о котором я должен знать?

blockquote>

Нет.

29
задан stormist 12 April 2010 в 21:08
поделиться

4 ответа

Хм, может быть что-то вроде этого;

echo date("F 1, Y", strtotime("-6 months"));

РЕДАКТИРОВАТЬ;

, если вы хотите указать пользовательское использование даты;

echo date("F, 1 Y", strtotime("-6 months", strtotime("Feb 2, 2010")));
66
ответ дан Adnan 12 April 2010 в 21:08
поделиться

Немного хакерский, но работает:

<?php

$date = new DateTime("-6 months");
$date->modify("-" . ($date->format('j')-1) . " days");
echo $date->format('j, F Y');

?>
9
ответ дан Eric G 12 April 2010 в 21:08
поделиться

используют комбинацию mktime и date :

$date_half_a_year_ago = mktime(0, 0, 0, date('n')-6, 1, date('y'))

, чтобы сделать новую дату относительно данной даты, а не сегодня, вызовите date со вторым параметром

$given_timestamp = getSomeDate();
$date_half_a_year_ago = mktime(0, 0, 0, date('n', $given_timestamp)-6, 1, date('y', $given_timestamp))

, чтобы вывести его в формате, просто снова используйте date:

echo date('F j, Y', $date_half_a_year_ago);
9
ответ дан knittl 12 April 2010 в 21:08
поделиться

Это обсуждалось в комментариях, но в принятом ответе есть несколько ненужных strtotime() вызовов. Можно упростить до:

date("F 1, Y", strtotime("Feb 2, 2010 - 6 months"));

Кроме того, вы можете использовать DateTime(), как это, что я думаю, в равной степени читабельны:

(new DateTime('Feb 2, 2010'))->modify('-6 months')->format('M 1, Y');

Или используя статический метод ....

DateTime::createFromFormat('M j, Y','Feb 2, 2010')
    ->modify('-6 months')
    ->format('M 1, Y');
2
ответ дан billynoah 12 April 2010 в 21:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: