JS Сравнение текущего и заданного времени - PullRequest
0 голосов
/ 18 апреля 2011

Я хочу сравнить текущее время и время, введенное пользователем с помощью JavaScript.

Ответы [ 2 ]

2 голосов
/ 18 апреля 2011

В JavaScript текущая дата (включая время, с точностью до миллисекунды) доступна следующим образом:

var current = new Date();

Получает объект Date со многими различными методами и свойствами, которые вы можете использовать. Среди прочего вас заинтересуют getHours и getMinutes, если то, что у вас есть от вашего пользователя, является временем.

0 голосов
/ 18 апреля 2011

Javascript имеет мощный встроенный синтаксический анализатор дат. Попробуйте что-то вроде следующего:

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"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...