2014-11-17 5 views
-1

Я пытаюсь извлечь только день месяца из DATETIME в следующем формате:Как извлечь день месяца из даты в формате RFC 3339 в формате PHP?

$today = date('Y-m-d\TH:i:sP', strtotime('today')); 

Но, когда я пытаюсь извлекая только день месяца, я получаю «31».

Я использую: $day = date('d', $today); Который, я предполагаю, неверен.

ответ

2

Это потому, что второй параметр date() должен быть отметкой времени Unix. Вы передаете строку. В результате вы получаете дату Dec 31, 1969.

Все, что код не является необходимым в любом случае, как все, что вам нужно:

$day = day('d'); 

Если вы собираетесь только иметь доступ к строке даты вы должны преобразовать его в Unix Timestamp перед передачей его в date().

+0

+1 .... * Хм ... *, интересно, если я должен начать звонить свой врач, Дату или Дату доктор, вместо «Father Time»;) –

+0

Это аккуратный трюк! – wonderv

+0

@wonderv Ответит ли это на ваш вопрос? –

0

для извлечения дней (или другие части DateTime), я использую функцию форматирования:

$datetime = new DateTime('2000-01-10', new DateTimeZone('Pacific/Nauru')); 
$day = $datetime->format('d'); 
echo $day; 

использовать любой формат образуют PHP Manual.

0

Надеется, что это будет решить вашей проблему

$today = date('Y-m-d\TH:i:sP', strtotime('today')); 
$day = date('d', strtotime($today)); // here is the difference, 
            // instead of $today use strtotime($today) 
+0

Спасибо, что отлично справляется с деньгами из любой даты. – wonderv

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