如何通过JavaScript从互联网获取当前日期

9

我有这个函数:

function fun_voting_started(){
var now = new Date();
var now_date = now.getDate();
var now_month = now.getMonth(); now_month++;
var now_year = now.getFullYear();
var now_hours = now.getHours();
var now_min = now.getMinutes();
var now_sec = now.getSeconds();
var voting_started = now_year + "-" + now_month + "-" + now_date + " " + now_hours + ":" + now_min + ":" + now_sec; 
return voting_started;
}

这个函数从计算机加载日期,但有时用户的日期可能与当前日期不同。如何从互联网上获取当前日期?


2
你必须拥有一个后端服务器。 - Daniel A. White
这取决于现在是什么时间,用户在哪里,他们最初连接到哪个服务器等等。 - Dean.DePue
发起一个AJAX调用:http://json-time.appspot.com/time.json - Abhitalks
如果客户选择了错误的日期,你想对此采取什么措施?如果你想这样做以避免操纵,那是不可能的。必须始终在服务器端进行检查。 - Bergi
你对“当前日期”有什么理解?时间是相对的。是用户所在城市的当前日期,还是你所在城市的当前日期? - idmean
1个回答

7

从 PoC 的角度回答标题为“如何通过 JavaScript 从互联网获取当前日期”的问题,无论它可能有多么有用或无用。

您可以从发布 API 的互联网时间服务器(或任何服务器)获取时间。您可以在网络上搜索找到一个。

例如,(这个)(这个)

这些服务支持使用 Javascript 的 JSONP 进行 AJAX 回调。

演示:http://jsfiddle.net/abhitalks/n66eP/

JS:

$.ajax({
    dataType: 'jsonp',
    url: 'http://timeapi.org/utc/now.json',
    success: function (result) {
        alert(result.dateString);
    }
});

该服务返回一个带有日期字符串的对象。在这里只需要访问dateString属性。

谢谢,我该如何转换为这种格式?DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S' - user3357400
6
@user3357400:好的,那是另一个问题,我们可以另找时间讨论 :) 这个问题在SO上已经被问过和回答了很多次,请搜索一下。 - Abhitalks
这些链接现在已经失效了。请尝试使用获取日期/时间代替。 - ATD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接