当前位置: 首页 > 面试题库 >

如何在JavaScript中比较两个日期时间?

温浩大
2023-03-14
问题内容

我尝试通过C#的JSON解析创建标记。我在javascript中有一个关于日期时间比较的小问题。

  var nowDate= new Date();

  var LastTenMin= new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(),nowDate.getHours(),nowDate.getMinutes()- 10);

 var Time1= data2.LastRecordTime;

 var image2;

  var status;


  if (new Date(Time1) < new Date(LastTenMin)) {


  image2 = '/Images/truckOnline.png';


   status = "Truck is online."+"\n"+"Last seen:"+" "+Time1,

   }

 else {


   image2 = '/Images/truckOffline.png';
   status = "Truck is offline"+"\n"+"Last seen:"+" "+Time1,


            }

否则不起作用!谷歌地图上有truckOnline标记。我的错误在哪里?

和在SQL中这样的LastRecordTime格式:04.12.2013 01:03:00

    LastRecordTime=CONVERT(VARCHAR(10), [ReadTimeColumn], 104) + ' ' + CONVERT(VARCHAR(8), [ReadTimeColumn],108)

问题答案:

穆罕默德

看来您打错了字:

  var LastTenMin= new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(),nowDate.getHours(),nowDate.getMinutes(),- 10);

应该是(请注意逗号):

  var LastTenMin= new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(),nowDate.getHours(),nowDate.getMinutes() - 10);

另外,您试图从日期对象创建新的日期对象,这是不正确的:

 new Date(LastTenMin)

这里是一个更完整的解决方案

var nowDate= new Date();
var Time1 = new Date("04/12/2013 01:03:00");
var LastTenMin= new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), nowDate.getHours(), nowDate.getMinutes() - 10);

// Should return true 
console.log(Time1 < LastTenMin);

// Change the year to a point in the future
Time1 = new Date("04/12/2014 01:03:00");

// Shold return false
console.log(Time1 < LastTenMin);

// So your original conditional should look like this:
if (Time1 < LastTenMin) {
    image2 = '/Images/truckOnline.png';
    status = "Truck is online."+"\n"+"Last seen:"+" "+Time1;
} else {
    image2 = '/Images/truckOffline.png';
    status = "Truck is offline"+"\n"+"Last seen:"+" "+Time1;
}

// And a more concise form:
var isOnline = !(Time1 < LastTenMin);
var image2 = isOnline ? '/Images/truckOnline.png' : '/Images/truckOffline.png';
var status = "Truck is " + (isOnline ? "Online" : "Offline") + "." + "\n" + "Last seen:" + " " + Time1

这是不加注释的解决方案:

var nowDate= new Date();
var Time1 = new Date(data2.LastRecordTime);
var LastTenMin= new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), nowDate.getHours(), nowDate.getMinutes() - 10);
var isOnline = !(Time1 < LastTenMin);
var image2 = isOnline ? '/Images/truckOnline.png' : '/Images/truckOffline.png';
var status = "Truck is " + (isOnline ? "Online" : "Offline") + "." + "\n" + "Last seen:" + " " + Time1

我的整个解决方案都假设data2.LastRecordTime中包含的字符串的格式为:“ MM.DD.YYYY HH:MM:SS”。



 类似资料:
  • 问题内容: 如何使用Python比较两个日期以查看稍后的日期? 例如,我想检查当前日期是否超过了我创建的假期日期列表中的最后日期,因此它将自动发送电子邮件,告诉管理员更新holiday.txt文件。 问题答案: 使用方法和运算符及其种类。

  • 问题内容: 有人可以建议一种使用JavaScript 比较 两个 大于,小于和过去的 日期 的值的方法吗?这些值将来自文本框。 问题答案: 该Date对象会做你想要的东西- 构造一个每个日期,然后用它们进行比较,,或。 在,,,和运营商要求使用作为 要清楚的是,仅直接检查日期对象是否相等将不起作用 我建议您使用下拉列表或日期输入的某些类似约束形式,而不要使用文本框,以免您陷入输入验证的困境。

  • 我有两个格式为m/d/yyyy的字符串日期。例如“2012年11/1”、“2013年1/2”。我正在用JavaScript编写一个函数来比较两个字符串日期。我的函数的签名是如果string1传递的日期晚于string2传递的日期,则返回true,否则返回false。因此,isLater(“1/2/2013”,“11/1/2012”)应返回true。我如何为此编写一个JavaScript函数?

  • 问题内容: 我正在尝试比较两个日期,而我只想比较日期部分而不是时间部分,这就是我在程序中存储日期的方式: 我有一个: 我想用 但是由于还涉及时间部分,所以我无法获得正确的答案。我该如何解决我的问题? 我不想使用JODA-TIME 问题答案: 您可以像这样逐个比较价值 要么 如果您使用Date类,请考虑改用Calendar类这是最优雅的解决方案,为此使用Calendar和Comparator 用法:

  • 问题内容: 如果日期格式为和,如何在php中比较两个日期。 我正在使用此代码: 但它不起作用.. 问题答案: 您必须确保您的日期是有效的日期对象。 尝试这个: 然后,您可以执行该方法来获得差异。

  • 问题内容: 如何在PHP中比较两个日期? 在数据库中,日期看起来像2011-10-2。 如果我想将今天的日期与数据库中的日期进行比较,看哪个更大,我该怎么做? 我试过了 但这并不是真的那样。还有另一种方法吗? 更新:我知道这篇文章有点老,但是我只想提及carbon,它是与laravel一起使用的一类,但可以与经典php一起使用,并且它确实与日期有关。检查一下:碳 问题答案: 在数据库中日期看起来像