0

私のコンテンツ配列には、「F Y」としてフォーマットしようとしている日付フィールドが含まれています。

print_r を実行すると、次のようになります。

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 年 1 月) が得られることを期待していたと思います。誰かがここで私を助けてくれますか? 私は何が欠けていますか?

4

2 に答える 2

1

配列内のデータが破損しているようです。これを試して:

$content = array(
    'title' => 'test',
    'field_datetime_value_1' => '2012-01-16',
    'field_datetime_value2' => '2012-01-20'
);
于 2011-12-02T01:23:55.480 に答える
1
<?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 "</pre>";

$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;

?>

結果 :

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

Justin Lucas が言ったように、結果は正しく出力されます。

"strtotime" メソッドは古いバージョン (php.net) から使用できます。これは、配列に問題があることを意味します。「テスト」変数定義の前に配列の内容が変更されていないことを確認しますか?

于 2011-12-02T01:49:10.767 に答える