Member 12926744 Ответов: 3

Получить текущее серверное время в javascript


Всем привет,

Мне нужно получить текущее серверное время и отобразить его на веб-странице .Однако он отображает машинное время вместо серверного.Кто-нибудь может мне помочь, пожалуйста .Любая помощь будет очень признательна.

Что я уже пробовал:

 <script type="text/javascript">

    function updateClock() {
        var currentTime = new Date();

        var currentHours = currentTime.getHours();
        var currentMinutes = currentTime.getMinutes();
        var currentSeconds = currentTime.getSeconds();

        // Pad the minutes and seconds with leading zeros, if required
        currentMinutes = (currentMinutes < 10 ? "0" : "") + currentMinutes;
        currentSeconds = (currentSeconds < 10 ? "0" : "") + currentSeconds;

        // Choose either "AM" or "PM" as appropriate
        var timeOfDay = (currentHours < 12) ? "AM" : "PM";

        // Convert the hours component to 12-hour format if needed
        currentHours = (currentHours > 12) ? currentHours - 12 : currentHours;

        // Convert an hours component of "0" to "12"
        currentHours = (currentHours == 0) ? 12 : currentHours;

        // Compose the string for display
        var currentTimeString = currentHours + ":" + currentMinutes + ":" + currentSeconds + " " + timeOfDay;

        // Update the time display
        document.getElementById("clock").firstChild.nodeValue = currentTimeString;
        setTimeout(updateClock, 1000);
    }
    updateClock();

    
</script>

3 Ответов

Рейтинг:
2

Ngo Tuong Dan

JavaScript-это клиентский сценарий, поэтому мы не можем получить серверное время.


Рейтинг:
2

F-ES Sitecore

Предполагая webforms, если MVC использует ту же концепцию, но в razor

<script type="text/javascript">
        var currentTime = new Date('<%=DateTime.Now.ToString("MMMM dd, yyyy, HH:mm:ss")%>');
        // rest of code
</script>


Рейтинг:
1

Suvendu Shekhar Giri

Вопрос выглядел интересным, и я попробовал другое мнение, и я нашел следующее, которое действительно работает.

Создайте js файл например serverDate.js со следующим содержанием-

var xmlHttp;
function srvTime(){
    try {
        //FF, Opera, Safari, Chrome
        xmlHttp = new XMLHttpRequest();
    }
    catch (err1) {
        //IE
        try {
            xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
        }
        catch (err2) {
            try {
                xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
            }
            catch (eerr3) {
                //AJAX not supported, use CPU time.
                alert("AJAX not supported");
            }
        }
    }
    xmlHttp.open('HEAD',window.location.href.toString(),false);
    xmlHttp.setRequestHeader("Content-Type", "text/html");
    xmlHttp.send('');
    return xmlHttp.getResponseHeader("Date");
}

var st = srvTime();
var date = new Date(st);


исходный код HTML:
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Server date/time</title>
    <script language="javascript" src="serverDate.js"></script>
  </head>
  <script language="javascript">
  var localTime = new Date();
  document.write("Local machine time is: " + localTime + "<br>");
  document.write("Server time is: " + date);
  </script>
  <body>
  </body>
</html>


Кредиты: javascript - правильный способ получить время веб - сервера и отобразить его на веб-страницах-переполнение стека[^]

Надеюсь, это поможет :)