dポイントプレゼントキャンペーン実施中!

こんばんは。
現在、ホームページにデジタルの時計を配置しているのですが
表示について質問させていただきます。

今配置しているのは下記のソースで
<script type="text/javascript">
<!--
document.write('<img src="am.jpg" name="p0"><IMG src="0.jpg" name="p1"><IMG src="0.jpg" name="p2">');
document.write('<img src="ten.jpg" name="p7"><IMG src="0.jpg"name="p3"><IMG src="0.jpg" name="p4">');
/* document.write('<img src="ten.jpg" name="p8"><IMG src="0.jpg" name="p5"><IMG src="0.jpg" name="p6">'); */
function jikoku3(){
data = new Date();
hour = data.getHours();
if((hour >= 12)){
hour = hour - 12;
hour2 = hour % 10;
hour1 = (hour-hour2) / 10 ;
ampm = "pm";
}else{
hour2 = hour % 10;
hour1 = (hour-hour2) / 10 ;
ampm = "am";
}
mine = data.getMinutes();
mine2 = mine % 10;
mine1 = (mine - mine2) / 10;
sec = data.getSeconds();
sec2 = sec % 10;
sec1 = (sec - sec2) / 10;
document.p0.src = ampm + ".jpg";
document.p1.src = hour1 + ".jpg";
document.p2.src = hour2 + ".jpg";
document.p3.src = mine1 + ".jpg";
document.p4.src = mine2 + ".jpg";
document.p5.src = sec1 + ".jpg";
document.p6.src = sec2 + ".jpg";
document.p7.src = "ten.jpg";
document.p8.src = "ten.jpg";
}
setInterval("jikoku3()",1000);
// -->
</script>
表示がAM07時とかの表記になってしまいます。

それをAM/PMではなくて20時、23時等の24時間表示にするには
どうしたら良いでしょうか?

本当に初歩的な質問をしてしまい失礼かと思いますが
宜しくお願い致します。

A 回答 (3件)

すでに回答は出ていますけれど…


少し繰返しを省いて、こんなのもあるかと。

ご質問の例では、「秒」の部分の表示用<img >がコメントアウトされていますが、代入する方はそのままなのでどちらが正なのか不明でした。
(「秒」表示が不要な場合は、disp = ["Hours","Minutes"]; に)
intervalは1000がいいのか、500がいいのか…(ご提示のものと同じにしてあります)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Script-Type" content="text/javascript">
</head>

<body>

<!-- ↓表示対象用のdiv↓ -->
<div id="target"></div>


<script type="text/javascript">
<!--
(function(toTag) {
var targetId = "target"; // ← 表示用divのid
var disp = ["Hours","Minutes","Seconds"]; // ← 表示内容

var time = function() {
var i = 0, d, n, m, html = "";
var date = new Date();
while (d = disp[i++]) {
n = "0" + date["get" + d]();
m = n.length - 2;
if (i>1) html += toTag("ten");
html += toTag(n.charAt(m++));
html += toTag(n.charAt(m));
}
document.getElementById(targetId).innerHTML = html;
}
setInterval(time, 1000);

})(function(str) {
return '<img src="' + str + '.jpg" alt="">';
});
// -->
</script>
</body>
</html>
    • good
    • 0

#2です。


お馬鹿な無駄があったので、ちょいと訂正。(内容は同じです)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Script-Type" content="text/javascript">
</head>
<body>

<!-- 表示対象用のdiv↓ -->
<div id="target"></div>


<script type="text/javascript">
<!--
(function(toTag) {
var targetId = "target"; // ← 表示用divのid
var disp = ["Hours","Minutes","Seconds"]; // ← 表示内容

var time = function() {
var i = 0, d, n, html = "";
var date = new Date();
while (d = disp[i]) {
n = date["get" + d]() + "";
if (2 > n.length) n = "0" + n;
if (i++) html += toTag("ten");
html += toTag(n.charAt(0)) + toTag(n.charAt(1));
}
document.getElementById(targetId).innerHTML = html;
}
setInterval(time, 1000);

})(function(str) {
return '<img src="' + str + '.jpg" alt="">';
});
// -->
</script>
</body>
</html>
    • good
    • 0

>if((hour >= 12)){


>hour = hour - 12;
>hour2 = hour % 10;
>hour1 = (hour-hour2) / 10 ;
>ampm = "pm";
>}else{
>hour2 = hour % 10;
>hour1 = (hour-hour2) / 10 ;
>ampm = "am";
>}

の部分を削って、hourの値をそのまま利用すればいいのではないでしょうか。
必要であれば0~9時の場合は頭に"0"を付加するようにして。
    • good
    • 0
この回答へのお礼

迅速な返答ありがとうございます。
ちょっと動作の実験をしてみます。

お礼日時:2011/01/07 19:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!