6

私はそれで2回言うウェブサイトで2つの時計を作成しようとしています。1つはロンドンから、もう1つはニューヨークから。

コンピューターで現在の時刻を読み取る時計を作成することはできましたが、これにタイムゾーンを配置する方法がわかりません。

私がこれまでに持っているコードは次のとおりです。

<script type="text/javascript" language="javascript">

function renderTime() {
    var currentTime = new Date();
    var diem = "AM";
    var h = currentTime.getHours();
    var m = currentTime.getMinutes();
    var s = currentTime.getSeconds();

    if (h == 0) {
        h = 12
    } else if (h > 12) {
        h = h - 12;
        diem = "PM";
    }

    if (h < 10) {
        h = "0" + h;
    }

    if (m < 10) {
        m = "0" + m;
    }

    if (s < 10) {
        s = "0" + s;
    }

    var myClock = document.getElementById ("clockDisplay");
    myClock.textContent = h + ":" + m + ":" + s + " " + diem;

    setTimeout ('renderTime()', 1000);
}
renderTime();
</script>

これは、私が作成したCSSスタイルに適用されているため、特定の書体で時計を使用できます。

4

6 に答える 6

2

currentTime.getTimezoneOffset()グリニッジ標準時(GMT)と現地時間の時差が分単位で表示されます。

この値を使用して、必要なタイムゾーンの時間を計算できます。

于 2012-06-04T15:03:18.010 に答える
2

これを適切に行うには、ここにリストしたものの1つなどのタイムゾーンデータベースが必要になります。

この質問に対する他のすべての答えは、「タイムゾーン」と「タイムゾーンオフセット」が同じものであると誤解しています。ではない。たとえば、ロンドンのタイムゾーンEurope/Londonはです。これは、1年のどの時期に応じて、+0または+1のオフセットを持つことができます。ニューヨークのタイムゾーンはです。これはAmerica/New_York、ロンドンとはまったく異なる日付のセットに基づいて、-5または-4のオフセットを持つことができます。

あなたはmoment-timezoneを見たいかもしれません:

moment().tz("America/New_York").format()
于 2013-11-25T20:17:35.453 に答える
1

http://www.datejs.com/をチェックしてください。日付とタイムゾーンを適切に処理します。

デモをチェックアウトする場合は、テキストボックスに1 GMTvs1 MSTまたは1 ESTを入力すると、そのタイムゾーンで適切な日付が表示されます。

于 2012-06-04T15:05:33.493 に答える
1

あなたはあなたの日付から時間を加算または減算することができます

currentTime.setHours(currentTime.getHours()+offset);

ここで、offsetは任意の時間数です。

その行と関数でjsfiddleを更新して、オフセットのパラメーターを受け入れるようにしました。これはUTCオフセットではなく、システム時刻から何時間追加するかだけです。現在のUTCオフセットは次のように取得できますcurrentTime.getTimezoneOffset()/60

デモ

于 2012-06-04T15:08:19.327 に答える
0

みなさん、ありがとうございました。それはすべて少し混乱していましたが、私はここで良い例を見つけました。それは私がそれをうまくやっていく方法です。例4を確認してください:http ://www.ajaxupdates.com/jclock-jquery-clock-plugin/

それが他の誰かに役立つことを願っています!

于 2012-06-06T11:08:24.363 に答える
0

私はmphpのWebサイトで次のように使用しています。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"
<script type="text/javascript">
$(function() {
    getStatus();
});

function getStatus() {
<?php
echo "    var z = '".strftime("%Z",strtotime("now"))."';\n";
?>
    var d = new Date();
    var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
    var offset = -8;
    if(z == "PDT") offset = -7;
    var currentTime = new Date(utc + (3600000*offset));
    var currentHours = currentTime.getHours ( );
    var currentMinutes = currentTime.getMinutes ( );
    currentMinutes = ( currentMinutes < 10 ? "0" : "" ) + currentMinutes;
    var timeOfDay = ( currentHours < 12 ) ? "AM" : "PM";
    currentHours = ( currentHours > 12 ) ? currentHours - 12 : currentHours;
    currentHours = ( currentHours == 0 ) ? 12 : currentHours;
    var currentTimeString = currentHours + ":" + currentMinutes + ": " + timeOfDay + " " + z;

    $('td#clock').html(currentTimeString);
    setTimeout("getStatus()",5000);
}
</script>

私がテーブルを使うところ、これはいっぱいになります

<table><tr><td id='clock'></td></tr></table>

ただし、ロサンゼルスからの時間(PDTまたはPST)の場合、サーバーもその時間に実行されるため、サーバーからstrftimeを渡しても同じ効果が得られない可能性があります。しかし、述べたように、これは他のゾーンで働く時間を得るという私の決意でした。

于 2016-09-21T12:56:16.197 に答える