Почему strtotime не работает? - PullRequest
0 голосов
/ 02 декабря 2011

Мой массив содержимого содержит поле даты, которое я пытаюсь отформатировать как "F Y".

Когда я напечатаю_, я получу это:

Array
(
    [title] => Test
    [field_datetime_value_1] => 2012-01-16
    [field_datetime_value2] => 2012-01-20
)

Если я попытаюсь:

$test1 = date("F Y", $content['field_datetime_value_1']);
$test2 = date("F Y", strtotime($content['field_datetime_value_1']));
$test3 = $content['field_datetime_value_1'];

print 'Test 1: '.$test1.'<br />Test 2: '.$test2.'<br />Test 3:'.$test3;

Я получаю это:

Test 1:
Test 2: December 1969
Test 3:2012-01-16

Полагаю, я ожидал, что в случае с Тестом 2 я получу то, что мне было нужно (а именно, январь 2012 года). Может ли кто-нибудь помочь мне здесь? Чего мне не хватает?

Ответы [ 2 ]

1 голос
/ 02 декабря 2011
<code><?php

//your array
$content = array (
    'title' => 'Test',
    'field_datetime_value_1' => '2012-01-16',
    'field_datetime_value2' => '2012-01-20'
);

//debug your array
echo "<pre>";
var_dump($content);
echo "
"; $ test1 = date ("F Y", $ content ['field_datetime_value_1']); $ test2 = date ("F Y", strtotime ($ content ['field_datetime_value_1'])); $ test3 = $ content ['field_datetime_value_1']; напечатать 'Тест 1:'. $ test1. '
Тест 2:'. $ test2. '
Тест 3:'. $ test3; ?>

Результат:

array(3) {
  ["title"]=>
  string(4) "Test"
  ["field_datetime_value_1"]=>
  string(10) "2012-01-16"
  ["field_datetime_value2"]=>
  string(10) "2012-01-20"
}
Test 1: January 1970
Test 2: January 2012
Test 3: 2012-01-16

Как сказал Джастин Лукас, результаты печатаются правильно.

Метод strtotime доступен со старых версий (php.net). Это означает, что у вас есть проблема в вашем массиве. Вы уверены, что содержимое массива не было изменено до определения «тестовых» переменных?

1 голос
/ 02 декабря 2011

Похоже, что данные в вашем массиве повреждены.Попробуйте это:

$content = array(
    'title' => 'test',
    'field_datetime_value_1' => '2012-01-16',
    'field_datetime_value2' => '2012-01-20'
);
...