更新日を日本時間にするには?
[上に]
[前に]
[次に]
わあ
[E-Mail]
1999/07/13(火) 12:56:31
ホームページを作成し、更新する際、document.lastModified を使い
更新日時をHP上に明示したいとおもいましたが、グリニッジ標準時で表示されてしまいます。(9時間遅い)
日本時間に直すにはどうしたらよいのでしょう?
お願いします。
maeda
[E-Mail]
1999/07/13(火) 13:08:06
手前味噌で申し訳ないですが、以下を参照してみてください。
http://www.octnet.co.jp/member/maeda/bug/
実際の使い方はそのページのソースそのものを御覧になってください。
わあ
1999/07/13(火) 14:04:21
ありがとうございます。早速、試してみたのですが、
5行目のdt〜の部分でエラーが出ます。
本当の初心者なのでお手上げです。
教えてください。
maeda
[E-Mail]
1999/07/13(火) 19:34:36
あぅ、確かにあの例ではわかりづらいですね(^_^;
ただ、そちらの環境(OS、ブラウザの種類)、どのようなエラーが
出たのかがわからないので、はっきりとした回答はできませんが、もし
かしたらブラウザが未対応のスクリプトかもしれません。
こちらではWin95+NC4.6、Win95+IE4.01、WinNT+NC4.6で動作を確認
しました。WinNT+IE3.0では誤動作を起こしました(日付オブジェクト
の初期値になる)。
maeda
[E-Mail]
1999/07/13(火) 19:47:04
一応ソースを載せておきます。至極単純なスクリプトなので、バグが
入り込む余地はまずないと思うんですが・・・。
dt = new Date(document.lastModified);
if(navigator.appName.charAt(0) == "M") {
tm = dt.getTime();
tm = tm + 9 * 60 * 60 * 1000;
dt.setTime(tm);
}
1行目:document.lastModifiedを日付オブジェクトに変換
2行目:MSIEであることを確認(NNであれば変換しない)
3行目:日付オブジェクトを1970/1/1 0:00:00.000からのミリ秒数に
変換
4行目:9時間分を追加
5行目:日付オブジェクトに戻す
Nobu3
1999/07/14(水) 01:03:39
ちなみにIE5では、IE用の変換は必要ないみたいです。
maeda
[E-Mail]
1999/07/14(水) 12:47:31
>ちなみにIE5では、IE用の変換は必要ないみたいです。
ありゃ、IE5での動作確認はしてませんので、わかりませんでした(^_^;
maeda
[E-Mail]
1999/07/15(木) 00:33:25
・・・確認しました。
確かに9時間時計が進んでますね。むぅ、スクリプト、作り直さなきゃ・・・。
わあ
1999/07/15(木) 11:48:13
私の書いたものをちぇっくしてもらえないでしょうか?
<html>
<head>
<title>日本時間</title>
</head>
<body>
<Script Language="JavaScript">
<!--
dt = new Date(document.lastModified);
if(navigator.appName.charAt(0) == "M") {
tm = dt.getTime();
tm = tm + 9 * 60 * 60 * 1000;
dt.setTime(tm);
}
hour = dt.getHours();
min = dt.getMinutes();
sec = dt.getSeconds();
date = dt.getDay();
month = dt.getMonth();
year = dt.getFullYear();
document.write("更新日: "+year+"/"+month+"/"+date+" "+hour+":"+min+":"+sec);
//-->
</script>
</body>
</html>
これで表示すると6月4日に日付が表示されるのですが・・・
どうしたら今日の日付になるのでしょうか?
たびたび申し訳ありません。
ふじ
1999/07/15(木) 12:47:29
>date = dt.getDay();
>month = dt.getMonth();
date = dt.getDate();
month = dt.getMonth() + 1;
と、しましょう。
http://www.tohoho-web.com/js/date.htm
月は 0〜11(1月が0)、
get.Day() は日でなくて曜日(日曜が0)を返します。
ふじ
1999/07/15(木) 12:48:52
おっとスペルミス。
>get.Day()
getDay()
です。
maeda
[E-Mail]
1999/07/15(木) 13:00:44
すでに回答があがってますね。それに加えて、
>if(navigator.appName.charAt(0) == "M") {
の部分を
if((navigator.appName.indexOf("Microsoft Internet Explorer") >= 0)
&& (parseInt(navigator.appVersion.substring(22, 25)) < 5)) {
としてください(IE5ではちゃんと日本時間に更新されているため)。
わあ
1999/07/15(木) 14:25:14
[[解決]]
出来ました。!!!(^^)Y
ありがとうございました。
maeda
[E-Mail]
1999/07/15(木) 17:40:30
すでに解決されていますが、追記。
「月」が0から11になっているのは、
MonthName = new Array("Jun", "Feb",・・・,"Dec");
document.write("Today is " + date + " " + MonthName[month]);
というふうに、数字ではなく、文字で表記するためです(欧米圏ではこ
れが標準だから?)。もちろん、月の名前を「卯月」などとすれば日本
語表記もできます。曜日も同様です。
とほほ
1999/07/15(木) 22:25:13
『dt.getFullYear()』は、IE3.0やNN4.0でエラーになっちゃうぞ。
これらのブラウザはgetFullYear()をサポートしていません。
かといって『dt.getYear()+1900』とすると、NN3.0/NN4.0/IE4.0/IE5.0
などで2000年問題を引き起こしちゃうぞ。getYear()は2000年になると、
ブラウザのバージョンによって100を返したり、2000を返したりするので、
困ったもんだ。
という訳で、IE3.0やNN4.0が消え去るまでは、下記のようにするのがオ
ススメです。
year = dt.getYear();
if (year < 1900) year += 1900;
[上に]
[前に]
[次に]