Magento 2コレクションでdatetimeを取得する際に問題があります。Magento 2タイムゾーン
例えば、これは、データベースのデータです:
entity_id | paid_at
------------------------------------------
1 | 2016-12-13 07:30:39
フルデータベースクエリ:
CREATE TABLE `pmnt` (
`entity_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`paid_at` timestamp NULL DEFAULT NULL COMMENT 'Payment date',
PRIMARY KEY (`entity_id`),
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='pmnt'
とMagentoのコレクションを返します:
[
'entity_id' => 1
'paid_at' => '2016-12-13 06:30:39'
]
これはZend_Db_Selectのレベルに返され、間違った日付グリッド、フォーム、コレクション、負荷にあります。
何が奇妙なのですか、テーブルcms_blockは大丈夫です。同じupdated_atとcreated_atがdbとmagentoコレクションの両方にあることを意味します。
bootstrap.phpにタイムゾーンを設定しようとしましたが、cms_blockコレクションのdatetimeが間違っています。
$table = $installer->getConnection()
->newTable($tableName)
->addColumn(
'entity_id',
Table::TYPE_INTEGER,
null,
[
'identity' => true,
'unsigned' => true,
'nullable' => false,
'primary' => true,
],
'ID'
)
->addColumn(
'paid_at',
Table::TYPE_TIMESTAMP,
null,
[
'nullable' => true
],
'Payment date'
);
あなたの 'paid_at'カラムのMySQLデータタイプは何ですか?あなたの質問の一番上の例に示されている*データベースデータ*を検索するためにあなたはどのツールを使用しましたか? –
こんにちは、paid_atはタイムスタンプです、私は私の投稿全テーブルのクエリを編集しました。このデータをテーブルから取得するには、phpmyadmin、phpstorm dbツール、commandline mysqlツールを使用しようとしました。 – amr