2012年09月05日
西暦112年?!
昨日の日付の書式設定をした方の中には
表示日付がおかしくなってしまった方がいるはずです。
実は昨日のソースをInternetExplorerで見ると2012年なのですが、
それ以外のブラウザで表示すると112年と表示されてしまいます。
これはブラウザによって日付データの扱いが違うために起こるバグのようなものです。
ブラウザ作成のルールとしては112年と表示されるのが正しいのですが、
InternetExplorerだけが独自ルールでブラウザを作ったために起こっています。
これを直すために年に1900を足すようにすると、
今度はInternetExplorerで見たときに3912年になってしまいます。
それも困りますね。
ということで、年の数値が2000より少ない時にだけ
1900追加する設定にしてしまいましょう。
今回はIT勉強するコタツネコさんのサイトを参考にさせていただきました。
リンク先では、年の修正以外にも曜日を漢字で出す方法も解説されてます。
方法は簡単。
yomikomi.js を開いて、年月日の設定をしている前の部分に
if(pyear < 2000){pyear = pyear+1900} ;
を書き足すだけです。
これでどのブラウザで見ても2012年の表示になりました。
現在の yomikomi.js のソースはこのようになります。
google.load("feeds", "1");
function initialize() {
var feedurl = "ブログのRSSから広告除去したURL ";
var feed = new google.feeds.Feed(feedurl);
feed.load(function (result){
if (!result.error){
var container = document.getElementById("feed");
var htmlstr = "";
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
htmlstr += '<h3><a href="' + entry.link + '">' + entry.title + '</a></h3>';
htmlstr += '<p>' + entry.contentSnippet + '</p>';
var strdate = createDateString(entry.publishedDate);
function createDateString(publishedDate){
var pdate = new Date(publishedDate);
var pday = pdate.getDate();
var pmonth = pdate.getMonth()+1;
var pyear = pdate.getYear();
if(pyear < 2000){pyear = pyear+1900} ;
var strdate = pyear + "年" + pmonth + "月" + pday + "日";
return strdate;
}
if(strdate){
htmlstr += '<p>' + strdate + '</p>';
}else{
htmlstr += '<p>' + entry.publishedDate + '</p>';
}
}
container.innerHTML = htmlstr;
}else{
alert(result.error.code + ":" + result.error.message);
}
});
}
google.setOnLoadCallback(initialize);
表示日付がおかしくなってしまった方がいるはずです。
実は昨日のソースをInternetExplorerで見ると2012年なのですが、
それ以外のブラウザで表示すると112年と表示されてしまいます。
これはブラウザによって日付データの扱いが違うために起こるバグのようなものです。
ブラウザ作成のルールとしては112年と表示されるのが正しいのですが、
InternetExplorerだけが独自ルールでブラウザを作ったために起こっています。
これを直すために年に1900を足すようにすると、
今度はInternetExplorerで見たときに3912年になってしまいます。
それも困りますね。
ということで、年の数値が2000より少ない時にだけ
1900追加する設定にしてしまいましょう。
今回はIT勉強するコタツネコさんのサイトを参考にさせていただきました。
リンク先では、年の修正以外にも曜日を漢字で出す方法も解説されてます。
方法は簡単。
yomikomi.js を開いて、年月日の設定をしている前の部分に
if(pyear < 2000){pyear = pyear+1900} ;
を書き足すだけです。
これでどのブラウザで見ても2012年の表示になりました。
現在の yomikomi.js のソースはこのようになります。
google.load("feeds", "1");
function initialize() {
var feedurl = "ブログのRSSから広告除去したURL ";
var feed = new google.feeds.Feed(feedurl);
feed.load(function (result){
if (!result.error){
var container = document.getElementById("feed");
var htmlstr = "";
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
htmlstr += '<h3><a href="' + entry.link + '">' + entry.title + '</a></h3>';
htmlstr += '<p>' + entry.contentSnippet + '</p>';
var strdate = createDateString(entry.publishedDate);
function createDateString(publishedDate){
var pdate = new Date(publishedDate);
var pday = pdate.getDate();
var pmonth = pdate.getMonth()+1;
var pyear = pdate.getYear();
if(pyear < 2000){pyear = pyear+1900} ;
var strdate = pyear + "年" + pmonth + "月" + pday + "日";
return strdate;
}
if(strdate){
htmlstr += '<p>' + strdate + '</p>';
}else{
htmlstr += '<p>' + entry.publishedDate + '</p>';
}
}
container.innerHTML = htmlstr;
}else{
alert(result.error.code + ":" + result.error.message);
}
});
}
google.setOnLoadCallback(initialize);
Posted by石上 昌子at14:42
ブログの読み込み