似乎是一个简单且常见的问题,但是在谷歌搜索了一会儿之后,哈特没有提出答案。
很简单,我有两个变量,每个变量的日期时间值格式为yyyy-mm-dd hh:mm
我想比较哪个更大并相应地执行逻辑:
例如:here
var fromDate = '2014-02-14 07:00';
var toDate = '2014-02-14 07:00';
if (Date.parse(fromDate) > Date.parse(toDate)) {
alert("Invalid Date Range!\nStart Date cannot be after End Date!")
} else {
alert("VALID Date Range!\n Start Date is before End");
}
以上持续返回成功的验证。
有什么建议,建议吗?例子?谢谢,
最佳答案
碰巧您所使用的格式可以按字母顺序进行比较。因此,无需解析:
var fromDate = '2014-02-14 07:00';
var toDate = '2014-02-14 07:00';
if (fromDate > toDate) {
alert("Invalid Date Range!\nStart Date cannot be after End Date!");
} else {
alert("VALID Date Range!\n Start Date is before End");
}
这是因为在整个字符串中,最高有效字段位于较低有效字段之前。
但是,如果您确实想要日期/时间值,那么规范不直接支持该字符串格式。您有三种选择:
使用像MomentJS这样的库。
对字符串进行按摩,以使其成为受支持的格式,但要注意,直到ES5为止,规范尚无标准格式。
自己做
后者看起来像这样:
function parseMyDate(str) {
var parts = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2})/.exec(str);
if (!parts) {
return null;
}
return new Date(parseInt(parts[1], 10), // Year
parseInt(parts[2], 10) - 1), // Month
parseInt(parts[3], 10), // Day
parseInt(parts[4], 10), // Hours
parseInt(parts[5], 10)); // Minutes
}
然后在上面有
parseMyDate
的地方使用Date.parse
。关于javascript - javascript/jquery比较日期时间值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21662031/