【发布时间】:2010-11-18 12:45:13
【问题描述】:
只是想知道是否有办法在 Jquery 中检查当前日期和时间。
【问题讨论】:
只是想知道是否有办法在 Jquery 中检查当前日期和时间。
【问题讨论】:
在 JavaScript 中,您可以使用 Date object 获取当前日期和时间;
var now = new Date();
这将获取本地客户端机器时间,如果您想进行时区调整或从服务器获取时间,请查看我对this question的回答。
编辑:响应您的评论,您可以非常轻松地将服务器时间检索到客户端:
time.php:
<? echo '{serverTime: new Date(' . time()*1000 .')}';?>
创建一个简单的JSON 字符串,使用当前服务器time 初始化一个新的Date 对象,该值乘以1000,因为PHP 以秒为单位处理时间戳,而JavaScript 以毫秒为单位。
在你的另一个上,你可以像这样获得服务器时间:
$.getJSON('time.php', function (data) {
alert(data.serverTime);
});
只需发出getJSON 请求以从time.php 中检索日期,并访问返回对象的serverTime 属性。
【讨论】:
从客户端机器获取当前日期和时间并不是一个天经地义的做法。
将此检查设为服务器端检查。
您可以使用 jQuery 向页面发出 Ajax 请求,然后返回当前日期和时间。
【讨论】:
澄清到目前为止提供的答案...
获取当前日期并不是使用 jquery 所必需的(即使它有能力这样做),因为原始 javascript 提供了这种功能。
var currentTimeAndDate = new Date();
除了极少数例外,您应该避免从客户端计算机获取当前时间/日期,因为您无法知道他们的时钟是否设置正确。始终从服务器获取时间日期,以提供某种程度的可预测性。但是,这也不是万无一失的,因为客户端可能确实比服务器提前一天或落后一天,因此您必须决定如何以适合您的应用程序的方式处理这种情况。
更新:
还需要区分静态获取日期/时间和动态获取日期/时间。
静态是服务器将时间/日期直接呈现到页面中的时间 - 例如,您可能想要“此页面是在 1962 年 7 月 24 日格林威治标准时间 12:34 生成的”(这将是一个巧妙的技巧,考虑到 Web 服务器在 1962 年不存在)。
动态是当客户端页面通过使用 AJAX 调用向服务器询问当前时间来主动更新时间显示 - 这是 @CMS 提供的响应中描述的方法
【讨论】: