让日期对象在 IE6 中工作(带有 YYYY-MM-DD 参数)?

发布于 2024-09-04 09:49:56 字数 641 浏览 0 评论 0原文

我刚刚为一个即将投入使用的项目准备了 IE6,这意味着是时候回去梳理所有 CSS 和 JS 了。然而,我对日期对象很感兴趣:

$.validator.addMethod("dateRange", function() {
  var today = new Date();
  var event_date_raw = $('#event_date').val();
  var event_date_parts = event_date_raw.split("-");
  var event_date = new Date( event_date_parts[2]+","+event_date_parts[1]+","+event_date_parts[0] );
  if( event_date.getTime() >= today.getTime() )
   return true;
  return false;
 }, "Please specify a correct date:");

event_date.getTime() 在 IE6 中返回“NaN”,因此验证失败。 event_date_raw 采用 YYYY-MM-DD 格式,在其他浏览器中似乎并不介意哪个日期......

有什么想法吗?

I just got IE6 sprung on me for a project that is going out into the wild soon, which means it's time to go back and comb through all of the CSS and JS. I've gotten hung up on the date object, however:

$.validator.addMethod("dateRange", function() {
  var today = new Date();
  var event_date_raw = $('#event_date').val();
  var event_date_parts = event_date_raw.split("-");
  var event_date = new Date( event_date_parts[2]+","+event_date_parts[1]+","+event_date_parts[0] );
  if( event_date.getTime() >= today.getTime() )
   return true;
  return false;
 }, "Please specify a correct date:");

event_date.getTime() returns "NaN" in IE6 so the validation fails. The event_date_raw is in the YYYY-MM-DD format, which date doesn't seem to mind in every other browser...

Thoughts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

醉酒的小男人 2024-09-11 09:49:56

根据 MSDN 您还可以将日期值输入到新的 <使用数值的 code>Date 对象。如果您尝试会发生什么

var event_date = new Date( event_date_parts[0], event_date_parts[1] - 1, event_date_parts[2] );

请注意,您必须将月份数字作为 0 到 11 之间的值传递。在示例中,我递减了您的月份数字,因为我假设输入范围在 1 到 12 之间。

According to MSDN you can also input a date value to a new Date object using numeric values. What happens if you try

var event_date = new Date( event_date_parts[0], event_date_parts[1] - 1, event_date_parts[2] );

Note that you have to pass the month number as a value between 0 and 11. In the example I decremented your month number, because I supposed that the input range is between 1 and 12.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文