バージョン選択

フォーラム

メニュー

オンライン状況

67 人のユーザが現在オンラインです。 (56 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 67
もっと...

サイト内検索

質問 > 管理機能 > データ移行プラグインで日付データが1時間ずれる

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2019/9/13 15:59
対応状況: 解決済
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
データ移行プラグインで日付データが1時間ずれる
■移行後
EC-CUBE 4.0.2
データ移行プラグイン 1.5.0
Apache 2.2.34
PHP 7.1.22
MySQL 5.7.23

■移行前
EC-CUBE 2.4.1
Apache
PHP 5.3.3
MySQL 5.1.73-log

移行前と移行後で会員データを比較してみると、登録日と最終更新日が1時間ずれてしまっています。
原因わかりますでしょうか?

■移行前
登録日 2018/01/01 23:27:34
最終更新日 2018/01/01 23:27:34

■バックアップデータCSV
create_date 2018/1/1 23:27:34
update_date 2018/1/1 23:27:34

■移行後
create_date 2018-01-01 22:27:34
update_date 2018-01-01 22:27:34


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

nanasess
投稿日時: 2019/9/14 16:13
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2303
Re: データ移行プラグインで日付データが1時間ずれる
移行前のデータベースと、移行後のデータベースでタイムゾーンに差があるとか、時計がずれているとかではないでしょうか?
h_tanaka
投稿日時: 2019/9/14 16:30
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: データ移行プラグインで日付データが1時間ずれる
nanasess さん

移行前のphpMyAdminと移行後のphpMyAdminで SELECT NOW() を実行してみましたが、まったく同じ時刻でした。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

h_tanaka
投稿日時: 2019/9/14 17:57
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: データ移行プラグインで日付データが1時間ずれる
PHPのtimezoneはどちらもAsia/Tokyoで一緒でした。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

h_tanaka
投稿日時: 2019/9/14 18:02
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: データ移行プラグインで日付データが1時間ずれる
どちらのサーバーで現在時刻出力しても同じ時刻が出力されました。
echo date('r',time());


他に考えられる原因なんでしょう。。?


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

h_tanaka
投稿日時: 2019/9/18 9:39
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: データ移行プラグインで日付データが1時間ずれる
自己解決しました。

app/Plugin/DataMigration4/Controller/Admin/ConfigController.php
の convertTz() 内をデバッグしてみて原因に気づきました。
DateTimeZone が Europe/Berlin になっていました。
    // タイムゾーンの変換
    // ECCUBE_TIMEZONE= への対応
    private function convertTz($em, $datetime)
    {
        if ($datetime === 'NULL') {
            return null;
        }
dump($datetime);

        $date = new \DateTime($datetime, new \DateTimeZone(ini_get('date.timezone')));
dump($date);    // ★ Europe/Berlin (+02:00) だった
        $date->setTimezone(new \DateTimeZone('UTC'));
dump($date);
dump($date->format($em->getDatabasePlatform()->getDateTimeTzFormatString()));
die;

        return $date->format($em->getDatabasePlatform()->getDateTimeTzFormatString());
    }


改めてシステム情報設定を確認したところ、次のようになっていました。
Default timezone Asia/Tokyo
date.timezone Europe/Berlin

Default の方を見てしまっていました。。
すみません。。

php.ini の設定を変更してAppachを再起動することで時間のずれがなくなりました。
;date.timezone = "Europe/Berlin"
date.timezone = "Asia/Tokyo"


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,288名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.