如何在 Javascript 中获取印度的日期和时间?它不应该采用计算机的日期和时间,而应该采用标准世界时区,而不采用个人计算机的时间参考。
6 回答
您可以向服务器发出 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");
}
这是一个 js 小提琴:http: //jsfiddle.net/A8vxa/
那是不可能的。Javascript 知道计算机的日期/时间,但如果它与当前时区不对应,则 Javascript 无法检测到。
但是,有用于 Date 对象的 UTC API,因此如果 OP 愿意信任客户端时钟,则可以这样做。
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
}
这是格林威治标准时间。但是由于它正在调用某个服务器,因此您的代码取决于该服务器功能,您可以创建您的服务器并相应地处理请求。
您可以将最近和未来时间的 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())
如果您使用 Node 和 NPM 进行开发,您可以使用这个包: https ://www.npmjs.com/package/ez-local-time 它包含所有世界时区,因此您始终可以通过编程方式获取印度的日期和时间.
在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
}
});