JS比较当前和给定时间

时间:2011-04-18 17:14:31

标签: javascript date time comparison

我想比较当前时间和用户使用JavaScript输入的给定时间。

2 个答案:

答案 0 :(得分:2)

在JavaScript中,当前日期(包括时间,毫秒)可以这样访问:

var current = new Date();

这会给你一个Date object,你可以使用许多不同的方法和属性。除此之外,如果您的用户拥有的是时间,您会对getHoursgetMinutes感兴趣。

答案 1 :(得分:0)

Javascript内置了强大的Date解析器。请尝试以下内容:

function compareDates(dateString)
{
  // Convert the user's text to a Date object
  var userDate = new Date(dateString);

  // Get the current time
  var currentDate = new Date();

  if(isNaN(userDate.valueOf()))
  {
    // User entered invalid date
    alert("Invalid date");
    return;
  }

  var difference = currentDate - userDate;
  alert("The date entered differs from today's date by " + difference + " milliseconds");
}

编辑:如果要分析时间而不是日期,则必须使用正则表达式。如果用户输入的格式类似于10:50pm,则可以使用以下代码:

var dateRegex = /(\d\d?):(\d\d)(am|pm)?/;
function parseTime(timeString)
{
  var match = dateRegex.exec(timeString);
  if(!match) return null;
  return {
    hours: match[1]-0, // Subtracting zero converts to a number
    minutes: match[2]-0,
    isPM: match[3].toLowerCase === "pm"
  };
}
console.log(parseTime("10:50pm"));