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"));