javascript:获取印度的日期和时间(不是个人电脑的日期和时间)

时间:2013-02-23 15:53:01

标签: javascript datetime

如何在Javascript中获取印度的日期和时间? 它不应该占用计算机的日期和时间,但它应该采用标准世界的时区,而不需要使用个人计算机的时间参考。

6 个答案:

答案 0 :(得分:2)

您可以向服务器发出ajax请求并返回时间:

HTML

<p>The time is <span id="time"></span></p>

JS

var time = document.getElementById('time');

time.innerHTML = getTime();

function getTime(){
    var xmlHttp;
    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");
}

Heres a js fiddle:http://jsfiddle.net/A8vxa/

答案 1 :(得分:1)

那是不可能的。 Javascript知道计算机的日期/时间,但如果这与当前时区不对应,则Javascript无法检测到。

但是,Date对象有UTC API,因此如果OP愿意信任客户端时钟,则可以完成。

答案 2 :(得分:0)

Javascript是一种客户端语言。它在用户系统上执行,因此datetime对象保留用户系统时间。但是Javascript可以进行HTTP调用,只能进行服务器。

您可以拨打Working Demo

http://json-time.appspot.com/time.json?tz=GMT

你会得到回应(在浏览器中打开):

{
  "tz": "GMT", 
  "hour": 16, 
  "datetime": "Sat, 23 Feb 2013 16:07:44 +0000", 
  "second": 44, 
  "error": false, 
  "minute": 7
}

这是GMT时间。但由于它正在调用某个服务器,因此您的代码依赖于服务器功能,您可以使服务器相应地处理请求。

答案 3 :(得分:0)

您可以在最近和未来的时间内为UTC时间添加5个半小时 - 印度目前没有DST,只有一个时区。

假设您可以从客户端获取UTC:

function IndiaTime(D){
    D= D || new Date();
    D.setUTCMinutes(D.getUTCMinutes()+330);

    var A= [D.getUTCHours(), D.getUTCMinutes(), D.getUTCSeconds()];
    if(A[1]<10) A[1]= '0'+A[1];
    if(A[2]<10) A[2]= '0'+A[2];
    return A.join(':');
}

alert(IndiaTime())

答案 4 :(得分:0)

在php上创建一个函数

public function ajax_getDate()
{
    ini_set("date.timezone", "Asia/Kolkata");
    echo json_encode(date('F d, Y h:i:s A')); 

    //you can use any date format you want check http://php.net/manual/en/function.date.php
}

然后使用ajax检索数据..

$.ajax({
    url : url + "ajax_getDate",
    type: "GET",
    dataType: "JSON",
    success: function(data)
        {
          date = data;
          // do something
        }
});

答案 5 :(得分:0)

如果您正在使用Node和NPM进行开发,则可以使用此包: https://www.npmjs.com/package/ez-local-time 它包含所有世界时区,因此您可以始终以编程方式获取印度的日期和时间。