最新のリビジョンのJoomla!1.5RC4をエクスポートして、比較してみました。
とりあえず、記事の日時の問題は以下でクリアしそうです。
JoomlaRoot/libraries/joomla/utilities/date.php
$date = date("Y-m-d H:i:s", $this->_date);
を
$date = gmdate("Y-m-d H:i:s", $this->_date);
へ
$date = strftime($format, $this->_date + ($this->_offset * 3600));
を
$date = gmstrftime($format, $this->_date + ($this->_offset * 3600));
へ 変更する。
Joomla!1.5 DemoをRC3からRC4に変更しました。手順は、先日テストサーバーで行ったのと全く同じで問題ありませんでした。VideoBarのデモのためにテンプレートに少し手を加えていたのを忘れていて消しちゃってから少しあわてましたが・・・。(全然バックアップせずに行っていた。)
少し違う点は、Demoとはいえ公開しているサイトなのでDemoRootにリダイレクトさせる.htaccessを設置してから行いました。
そういえば、記事の日時がローカルテストサーバーのJoomla!1.0.13でいつも文字化けしていたことを放置していました。
2007/12/07 Friday 08:01:00 ???? (?W????)
こういうの見たことありませんか?
以下を変更してみました。
これは、Windowsサーバーでは発生するようです。プラットホーム依存ぽいです。Ubuntuでは、
2007/12/07 金曜日 08:01:00 JST
などと表示され、正常です。
ROOT/includes/joomla.php
if ( $date && ereg( "([0-9]{4})-([0-9]{2})-([0-9]{2})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})", $date, $regs ) ) {
$date = mktime( $regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1] );var_dump($date);
$date = $date > -1 ? strftime( $format, $date + ($offset*60*60) ) : '-';
}
return $date;
を
if ( $date && ereg( "([0-9]{4})-([0-9]{2})-([0-9]{2})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})", $date, $regs ) ) {
$date = mktime( $regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1] );var_dump($date);
$date = $date > -1 ? strftime( $format, $date + ($offset*60*60) ) : '-';
}
return mb_convert_encoding($date, 'UTF-8', 'SJIS');
のように変更してみました。
すると、
2007/12/07 Friday 08:01:00 東京 (標準時)
に変わりました。あれれれれこれって・・・はじめて見る気がするのは私だけでしょうか(いつも表示させていないからか?)・・・
SJISの部分や、行番号(変更したりで)は、環境により異なるかもしれません。
また、表示の仕方を変更したいときや、表示するものを変更したい場合は、
ROOT/language/japanese.php
DEFINE("_DATE_FORMAT_LC","%Y/%m/%d %A %H:%M:%S %Z"); //Uses PHP's strftime Command Format
をたとえば、
DEFINE("_DATE_FORMAT_LC","%Y/%m/%d %A"); //Uses PHP's strftime Command Format
のようにすれば
2007/12/07 Friday
となります。書き方は、http://jp.php.net/strftimeのパラメータ項を参照してください。
文字化けな方は、お試しあれ