如何使用Jquery检查当前日期和时间

18

想知道在Jquery中如何检查当前日期和时间。

3个回答

21

使用JavaScript,您可以使用Date对象获取当前日期和时间;

var now = new Date();

如果您想进行时区调整或从服务器获取时间,请查看此问题中我的答案。这将获取本地客户端机器时间。


编辑:根据您的评论,您可以非常容易地将服务器时间检索到客户端:

time.php

<? echo '{serverTime: new Date(' . time()*1000 .')}';?>

创建一个简单的JSON字符串,其中包含一个以当前服务器时间初始化的新Date对象,因为PHP处理时间戳是以秒为单位的,而JavaScript是以毫秒为单位的,所以该值乘以1000。

在另一端,您可以像这样获取服务器时间:

$.getJSON('time.php', function (data) {
  alert(data.serverTime);
});

只需使用getJSON请求从time.php检索日期,并访问返回对象的serverTime属性。


在PHP中,是否可以在服务器端检查日期并将其分配给一个变量,然后在Jquery中使用该变量? - akano1
谢谢回答,非常有帮助。不知道是否有一种方法可以检查一个星期中的某一天(例如星期五)。谢谢。 - akano1
在PHP中,可以看一下strtotime函数http://is.gd/2budP...即:strtotime(“下周五”) - Christian C. Salvadó
非常抱歉问这个问题,但我很好奇...你从time.php获取的是所谓的JSONP吗?还是纯粹的JSON? - sharat87
@sharat87:这是一个普通的JSON响应。 - Christian C. Salvadó

6

从客户端获取当前日期和时间不是一个好的做法。

将此检查转换为服务器端检查。

您可以使用jQuery向一个页面发出Ajax请求,然后返回当前日期和时间。


除非您知道用户的时区(例如:他们已登录并在某个阶段提供了时区信息),否则您服务器的时间不太可能是他们当地的时间。在这种情况下,使用用户浏览器提供的时间是否更好? - drevicko

2
为了澄清到目前为止提供的答案...
  1. 获取当前日期不是必须使用jquery(即使它有这个功能),因为原始javascript提供了这个功能。

    var currentTimeAndDate = new Date();

  2. 除非特殊情况,否则应避免从客户端机器获取当前时间/日期,因为您无法知道他们的时钟是否设置正确。始终从服务器获取时间日期以提供某种程度的可预测性。然而,这也不是完美的,因为客户端可能真的比服务器快一天或慢一天,所以您需要决定如何以适合您的应用程序的方式处理这种情况。

更新:

还需要区分静态和动态获取日期/时间。

静态是指服务器直接将时间/日期呈现在页面中 - 例如,您可能希望显示“此页面在1962年7月24日GMT 12:34生成”(这将是一个巧妙的技巧,考虑到web服务器在1962年并不存在)。

动态是指客户端页面通过使用AJAX调用向服务器请求当前时间来主动更新时间显示 - 这是由@CMS提供的响应中描述的方法。


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