Могу ли я постоянно показывать, какое время в Боливии с Javascript? - PullRequest
0 голосов

Я хотел бы показать аналоговые часы на основе этого кода, которые показывают, сколько времени я живу, чтобы, когда пользователь видит нас, следующий код работал нормально, но отображал время пользователя. Я хочу, чтобы вы постоянно показывали, который час в Америке / la_paz gm -4 Боливия;

$(document).ready(function() {
    setInterval(function() {
        var seconds = new Date().getSeconds();
        var sdegree = seconds * 6;
        var srotate = "rotate(" + sdegree + "deg)";

        $("#sec").css({"-moz-transform" : srotate, "-webkit-transform" : srotate});    
    }, 1000);

    setInterval(function() {
        var hours = new Date().getHours();
        var mins = new Date().getMinutes();
        var hdegree = hours * 30 + (mins / 2);
        var hrotate = "rotate(" + hdegree + "deg)";

        $("#hour").css({"-moz-transform" : hrotate, "-webkit-transform" : hrotate});   
    }, 1000);

    setInterval(function() {
        var mins = new Date().getMinutes();
        var mdegree = mins * 6;
        var mrotate = "rotate(" + mdegree + "deg)";

        $("#min").css({"-moz-transform" : mrotate, "-webkit-transform" : mrotate});    
    }, 1000 );
}); 

Из комментария:

Идея в том, чтобы показать часы, чтобы в момент обращения к нам Пользователь может видеть, сколько времени в нашей стране происхождения, где я живу Америка / La_Paz GM-4

1 Ответ

0 голосов
/ 15 мая 2019

Похоже, вы показываете какие-то тикающие часы, используя текущее время.Таким образом, я предполагаю, что вы имели в виду, как получить удобочитаемое имя местного часового пояса, чтобы связать его с текущим временем, для целей отображения вашему пользователю.

Есть несколько способов:

  • Извлечь его из выходных данных Date.toString:

    var d = new Date();              // Example:
    var s = d.toString();            // "Tue May 14 2019 14:29:05 GMT-0700 (Pacific Daylight Time)"
    var tz = s.match(/\((.*)\)/)[1]; // "Pacific Daylight Time"
    
  • Извлечь из выходных данных Date.toLocaleString с указанным параметром timeZone:

    var d = new Date();
    var opts = {timeZoneName: 'long'};           // Example:
    var s1 = d.toLocaleString(undefined, opts);  // "5/14/2019, 2:29:05 PM Pacific Daylight Time"
    var s2 = d.toLocaleString();                 // "5/14/2019, 2:29:05 PM"
    var tz = s1.slice(-s2.length);               // "Pacific Daylight Time"
    
  • Или, если вы предпочитаете короткое имя (обычно сокращение):

    var d = new Date();
    var opts = {timeZoneName: 'short'};          // Example:
    var s1 = d.toLocaleString(undefined, opts);  // "5/14/2019, 2:29:05 PM PDT"
    var s2 = d.toLocaleString();                 // "5/14/2019, 2:29:05 PM"
    var tz = s1.slice(-s2.length);               // "PDT"
    

Первый вариант, вероятно, самый простой,и обладает преимуществом простоты и работает во всех браузерах, включая действительно старые.

С другой стороны, если вы спрашивали, как получить идентификатор часового пояса IANA для местного часового пояса, то:

Intl.DateTimeFormat().resolvedOptions().timeZone  // ex: "America/Los_Angeles"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...