2009-11-06 3 views
1

Мне было интересно, если бы кто-нибудь помог в следующем:работа с датами

У меня есть дата, вызванная функцией в php. Мне нужно провести эстраполяцию месяца с этой датой, чтобы сделать расчетную базу только за месяц.

Я действительно не знаю, как это сделать. Я пробовал несколько вещей, но никто не работает.

Есть ли там кто-нибудь, кто может дать ключ?

Оцените любую помощь. Francesco

+0

Какой формат это ваша дата в? – Greg

+0

Формат даты - YYYY/MM/DD, поскольку он хранится в Mysql – francesco

ответ

1

Простой

$month= date('n',strtotime($input)); 
+0

Спасибо, molevna. Ваше предложение отлично работало. Я думал об этом: вместо того, чтобы использовать месяц, если я хочу использовать начальный и конечный день (с 01/07 и 31/08), как бы в этом идти? Francescco – francesco

+0

Если сравнение даты все, что вы хотите достичь, а затем прибегнуть к сравнению метки времени, т.е. если (StrToTime ($ input1) mth

0

Вам необходимо сделать два шага: сначала преобразуйте свою входную строку в объект datetime, с которым может работать PHP, и, во-вторых, извлечь месяц с этой даты.

$timestamp = strtotime($inputDate); 
$month = strftime("%m", $timestamp); 

Это даст вам месяц как двухзначное число. Есть больше вариантов в полном объеме documentation for strftime

strtotime() должен автоматически справляться с подавляющим большинством форматов дат. Если он не может справиться с вашим вводом, вам необходимо использовать strptime() и передать его в точном формате

+0

Вторая строка должна быть '$ month = date ('n', $ timestamp);'. При попытке проанализировать числа от 01 до 09, PHP обрабатывает их как восьмеричные числа, а не десятичные. date ('n') возвращает месяц без левого поля. – Duroth

2

Чтобы извлечь эту информацию, вам понадобится unix timestamp. Либо у вас уже есть такое значение, либо вы можете получить его с помощью strtotime() на строке. Функция, которую нужно извлечь месяц date():

date('n', $timestamp); 
+0

strftime() лучше, чем дата, так как она известна по языку – Ian

+0

date() здесь приемлемо, так как я считаю, что автор пытается извлечь месяц из стандартного грегорианского календаря и он имеет 12 месяцев во всех местах. – mth

+0

@iAn: Неправильно. strftime в этом случае не работает, так как он содержит однозначные целые числа с 0, заставляя PHP рассматривать их как восьмеричные. – Duroth

Смежные вопросы