« Movable Typeのtimezone設定がおかしい? | メイン | 気がつけばWebに触って10年 »

Movable Typeの投稿が1時間ずれる問題の直し方

アメリカがサマータイムになって、Movable Typeに投稿した時間が
1時間ずれるようになったのですが、私だけに起きているわけでも
ないようなのでちょっとMovable Typeのソースをのぞいてみました。

で、lib/MT/Util.pmに問題と思われる箇所を発見。

$offset += 1 if (localtime $ts)[8];

GMT時間(グリニッジ標準時)を取得した後、ローカル(つまりサーバの置かれた場所)の
時間がサマータイムかどうかをYes/Noで判断して、その場所がサマータイムだと、
1時間をプラスしているようです。

私の借りているサーバはアメリカにあるはずですが、アメリカがサマータイムに
なると、この行に引きずられて日本時間が1時間ずれてしまっているみたいですね。
つまり、日本にいながらサーバをアメリカで借りている人のみに発生する問題
のようです。(いや、実はアウトソースでインドにあったりとか。。)

サマータイムのない日本ではこの部分は不要なので、根本的な解決
ではありませんが、とりあえずこの行をコメントアウトすることで対応
することにしました。
アメリカにいる人と私のサイトのMovable Typeを共有するときに問題が
生じますが、ま、そういうことはないので大丈夫でしょう。
Localizationをちょっと面白いと感じました。


以下、直し方です。

1. lib/MT/Util.pmファイルをサーバからFTPでダウンロードする
2. $offset += 1 if (localtime $ts)[8];という行を探す。 (171行目くらいです)
3. この行の先頭に#をつける
# $offset += 1 if (localtime $ts)[8];
↑こんな感じ
4. 編集したファイルを保存し、再度、FTPでもとにあった場所にアップロードする

トラックバック

このエントリーのトラックバックURL:
http://www.meiseki.net/cgi-bin/mt/mt-tb.cgi/122

この一覧は、次のエントリーを参照しています: Movable Typeの投稿が1時間ずれる問題の直し方:

» サマータイム問題解決。 from blog@Junkie Surfer Notes
トラックバックを送っていただいたこの記事を読みました。 [詳しくはこちら]

» サマータイム対応 from スナイプ
なんかですねぇ。最近、投稿日付が1時間ズレるなぁ、と思ってたらどうやらサマータイムの影響を受けていたようで。 ウチのサーバどうやらロケーションはサマータイムのある国らしい... [詳しくはこちら]

» Daylight Saving Time from okanomail.com
しばらく前から投稿時間が1時間ずれている。投稿時間なんかあんまり気にしていなかったのだが、コメントをもらったときにコメントの投稿時間を見たら未来から投稿されていたので気... [詳しくはこちら]

» サマータイム問題解決 from greenplastic.net
 サマータイム問題がようやく解決しました。  ボクはアメリカのレンタルサーバーを... [詳しくはこちら]

» Daylight Saving & Movable Type from 3lektr0pank's Obscure Days
最近気付いたのだけど、どうも TypeKey 認証がうまくいっていない。コメント... [詳しくはこちら]

» TypeKeyサインインが出来なかった問題への対処 from R-Stone
HINAGATAを使って作り直した小室哲哉MixographyとTRF Fan'... [詳しくはこちら]

» Movable Typeのサマータイム対策 from おじさんの備忘録 -番外編-
海外のサーバでMovable Typeを設置して場合、サマータイムが導... [詳しくはこちら]

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)