javascript/jquery比较日期时间值
这似乎是一个简单且常见的问题,但在谷歌搜索了一段时间后,还没有找到答案 非常简单,我有两个变量,每个变量都有一个日期时间值,格式为yyyy-mm-dd-hh:mm 我想比较哪个更大,并相应地执行逻辑: 例如: 以上操作持续返回成功的验证javascript/jquery比较日期时间值,javascript,jquery,validation,datetime,Javascript,Jquery,Validation,Datetime,这似乎是一个简单且常见的问题,但在谷歌搜索了一段时间后,还没有找到答案 非常简单,我有两个变量,每个变量都有一个日期时间值,格式为yyyy-mm-dd-hh:mm 我想比较哪个更大,并相应地执行逻辑: 例如: 以上操作持续返回成功的验证 有什么建议吗?例子?谢谢,您正在使用的格式恰好可以在词汇上进行比较。因此不需要解析: var fromDate = '2014-02-14 07:00'; var toDate = '2014-02-14 07:00'; if (fromDate > to
有什么建议吗?例子?谢谢,您正在使用的格式恰好可以在词汇上进行比较。因此不需要解析:
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");
}
这是因为在整个字符串中,最重要的字段位于不太重要的字段之前
但是,如果您确实需要日期/时间值,那么该规范并不直接支持该字符串格式。你有三个选择:
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
。parse。您正在使用的格式可以从词汇上进行比较。因此不需要解析:
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");
}
这是因为在整个字符串中,最重要的字段位于不太重要的字段之前
但是,如果您确实需要日期/时间值,那么该规范并不直接支持该字符串格式。你有三个选择:
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
。parse。您正在使用的格式可以从词汇上进行比较。因此不需要解析:
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");
}
这是因为在整个字符串中,最重要的字段位于不太重要的字段之前
但是,如果您确实需要日期/时间值,那么该规范并不直接支持该字符串格式。你有三个选择:
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
。parse。您正在使用的格式可以从词汇上进行比较。因此不需要解析:
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");
}
这是因为在整个字符串中,最重要的字段位于不太重要的字段之前
但是,如果您确实需要日期/时间值,那么该规范并不直接支持该字符串格式。你有三个选择:
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
。这很难看,但可以达到目的
var fromDate = '2014-02-27 09:00';
fromDate=fromDate.replace("-", "/");
fromDate=fromDate.replace("-", "/");
var toDate = '2014-02-27 10:00';
toDate=toDate.replace("-", "/");
toDate=toDate.replace("-", "/");
var fromDate=(new Date(fromDate).getTime()/1000);
var toDate=(new Date(toDate).getTime()/1000);
if(fromDate>toDate){
alert('CORRECT');
} else {
alert('INCORRECT, from after to');
}
这真的很难看,但却达到了目的
var fromDate = '2014-02-27 09:00';
fromDate=fromDate.replace("-", "/");
fromDate=fromDate.replace("-", "/");
var toDate = '2014-02-27 10:00';
toDate=toDate.replace("-", "/");
toDate=toDate.replace("-", "/");
var fromDate=(new Date(fromDate).getTime()/1000);
var toDate=(new Date(toDate).getTime()/1000);
if(fromDate>toDate){
alert('CORRECT');
} else {
alert('INCORRECT, from after to');
}
这真的很难看,但却达到了目的
var fromDate = '2014-02-27 09:00';
fromDate=fromDate.replace("-", "/");
fromDate=fromDate.replace("-", "/");
var toDate = '2014-02-27 10:00';
toDate=toDate.replace("-", "/");
toDate=toDate.replace("-", "/");
var fromDate=(new Date(fromDate).getTime()/1000);
var toDate=(new Date(toDate).getTime()/1000);
if(fromDate>toDate){
alert('CORRECT');
} else {
alert('INCORRECT, from after to');
}
这真的很难看,但却达到了目的
var fromDate = '2014-02-27 09:00';
fromDate=fromDate.replace("-", "/");
fromDate=fromDate.replace("-", "/");
var toDate = '2014-02-27 10:00';
toDate=toDate.replace("-", "/");
toDate=toDate.replace("-", "/");
var fromDate=(new Date(fromDate).getTime()/1000);
var toDate=(new Date(toDate).getTime()/1000);
if(fromDate>toDate){
alert('CORRECT');
} else {
alert('INCORRECT, from after to');
}
你的代码工作得很好。你使用哪种浏览器?但问题的关键是,您在问题中的两个日期都是相同的,而在您的示例中则不同。@MehranHatami:如果该代码在您的浏览器中工作,那是因为您的浏览器超出了规范的要求。你不能跨浏览器依赖它。@t.J.Crowder:这就是为什么我问起浏览器的问题。@MehranHatami:但是“你的代码工作得很好”有点误导,如果它依赖于未记录的浏览器行为,而不是通用的。:-)你的代码工作得很好。你使用哪种浏览器?但问题的关键是,您在问题中的两个日期都是相同的,而在您的示例中则不同。@MehranHatami:如果该代码在您的浏览器中工作,那是因为您的浏览器超出了规范的要求。你不能跨浏览器依赖它。@t.J.Crowder:这就是为什么我问起浏览器的问题。@MehranHatami:但是“你的代码工作得很好”有点误导,如果它依赖于未记录的浏览器行为,而不是通用的。:-)你的代码工作得很好。你使用哪种浏览器?但问题的关键是,您在问题中的两个日期都是相同的,而在您的示例中则不同。@MehranHatami:如果该代码在您的浏览器中工作,那是因为您的浏览器超出了规范的要求。你不能跨浏览器依赖它。@t.J.Crowder:这就是为什么我问起浏览器的问题。@MehranHatami:但是“你的代码工作得很好”有点误导,如果它依赖于未记录的浏览器行为,而不是通用的。:-)你的代码工作得很好。你使用哪种浏览器?但问题的关键是,您在问题中的两个日期都是相同的,而在您的示例中则不同。@MehranHatami:如果该代码在您的浏览器中工作,那是因为您的浏览器超出了规范的要求。你不能跨浏览器依赖它。@t.J.Crowder:这就是为什么我问起浏览器的问题。@MehranHatami:但是“你的代码工作得很好”有点误导,如果它依赖于未记录的浏览器行为,而不是通用的。:-)