我想比较两个日期.我有这个代码,我认为这将是一种享受,但事实并非如此.现在我只想在结束日期小于开始日期时发出错误警告.yyyy-mm-dd在此之前,日期样式需要以此格式保存以用于其他事件.这段代码有什么问题?
startdate = "2009-11-01" ;
enddate = "2009-11-04" ;
var d1 = new Date(startdate)
var d2 = new Date(enddate)
if (d2 < d1) {
alert ("Error ! ) ;
}
document.cookie='st =' + startdate // set sytem cookie
document.cookie='en =' + enddate
window.location = self.location.href
window.opener.location.reload()
close()
Run Code Online (Sandbox Code Playgroud)
Fil*_*eca 11
尝试使用DateJS,这是一个开源JavaScript日期库,可以处理几乎所有内容!以下示例正在运行:
<script type="text/javascript" src="date.js"></script>
<script>
startdate = "2009-11-01";
enddate = "2009-11-04";
var d1 = Date.parse(startdate);
var d2 = Date.parse(enddate) ;
if (d1 < d2) {
alert ("Error!");
}
</script>
Run Code Online (Sandbox Code Playgroud)
你正在使用一个很好的国际标准,JavaScript 可以说应该理解。但事实并非如此。
问题是您的日期采用ISO 8601标准格式,内置程序Date.parse()无法读取。
JavaScript 实现了RFC 822 /1123中较旧的 IETF 日期。一种解决方案是将它们调整为 RFC 样式,您可以在 RFC1123 中看到,它看起来像dd Month yyyy。
有一些编码可以全面扫描 ISO 格式,现在您知道可以通过 google 搜索“iso 标准日期”来获取它。在这里我发现了这个:
Date.prototype.setISO8601 = function (string) {
var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})" +
"(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?" +
"(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?";
var d = string.match(new RegExp(regexp));
var offset = 0;
var date = new Date(d[1], 0, 1);
if (d[3]) { date.setMonth(d[3] - 1); }
if (d[5]) { date.setDate(d[5]); }
if (d[7]) { date.setHours(d[7]); }
if (d[8]) { date.setMinutes(d[8]); }
if (d[10]) { date.setSeconds(d[10]); }
if (d[12]) { date.setMilliseconds(Number("0." + d[12]) * 1000); }
if (d[14]) {
offset = (Number(d[16]) * 60) + Number(d[17]);
offset *= ((d[15] == '-') ? 1 : -1);
}
offset -= date.getTimezoneOffset();
time = (Number(date) + (offset * 60 * 1000));
this.setTime(Number(time));
}
js> t = new Date()
Sun Nov 01 2009 09:48:41 GMT-0800 (PST)
js> t.setISO8601("2009-11-01")
js> t
Sat Oct 31 2009 17:00:00 GMT-0700 (PDT)
Run Code Online (Sandbox Code Playgroud)
11-01 在我的时区中被重新解释,只要您的所有日期获得相同的转换,那么它们应该进行合理的比较,否则您可以将 TZ 信息添加到您的字符串或 Date 对象中。
| 归档时间: |
|
| 查看次数: |
33545 次 |
| 最近记录: |