【问题标题】:jquery date conversion chrome works but IE and firefox don'tjquery 日期转换 chrome 可以工作,但 IE 和 firefox 不能
【发布时间】:2012-03-24 15:38:28
【问题描述】:

在这里迷路了。以下在 Chrome 中的作品非常好,但在 IE 和 FireFox 中 返回“undefined undefined NaN Nan”

我错过了什么?

var dateString = $(this).attr("ows_EventDate");
var current_date = new Date(dateString);
var month_names = [];
month_names[month_names.length] = "January";
month_names[month_names.length] = "February";
month_names[month_names.length] = "March";
month_names[month_names.length] = "April";
month_names[month_names.length] = "May";
month_names[month_names.length] = "June";
month_names[month_names.length] = "July";
month_names[month_names.length] = "August";
month_names[month_names.length] = "September";
month_names[month_names.length] = "October";
month_names[month_names.length] = "November";
month_names[month_names.length] = "December";
var day_names = [];
day_names[day_names.length] = "Sunday";
day_names[day_names.length] = "Monday";
day_names[day_names.length] = "Tuesday";
day_names[day_names.length] = "Wednesday";
day_names[day_names.length] = "Thursday";
day_names[day_names.length] = "Friday";
day_names[day_names.length] = "Saturday";

var startU = (day_names[current_date.getDay()]) + (", ") 
  + (month_names[current_date.getMonth()]) + (" ") + current_date.getDate() 
  + (" ") + (" ") + current_date.getFullYear();

Chrome 回归...... 2012 年 2 月 23 日星期四等,等等。

【问题讨论】:

  • $(this).attr("ows_EventDate") 产生的值的值是多少?
  • 这个 jsFiddle jsfiddle.net/jfriend00/rgMmH 在 Chrome、Firefox 和 IE9 中对我来说很好用。由于您没有包含 $(this).attr("ows_EventDate"); 的值,因此我不得不绕过它。
  • 另外,您是否意识到这是一种非常低效的声明数组的方式。你可以这样做; var day_names = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
  • 我意识到它现在的效率非常低。 Newb = me :) 对于上面 2 月的示例,输入的值将是“2012-02-04 21:00:00”

标签: javascript jquery date format


【解决方案1】:

IE 中的Date() 构造函数不接受您的日期"2012-02-04 21:00:00"

详情请参阅此相关帖子:Javascript Date() constructor doesn't work

Date() 构造函数应该作为字符串接受的规范是 RFC2822,如果您真的想要了解合法内容的详细信息。

显然,Firefox 和 IE 可以使用 "2012/02/04 21:00:00"

更多讨论请见this article

【讨论】:

    【解决方案2】:

    dateString 的格式必须正确。 ISO 8601 日期格式应该可以工作 (http://www.iso.org/iso/date_and_time_format)

    在您的评论中,您说dateString 等于2012-02-04 21:00:00。用T 替换空格将使其成为所有浏览器都可以解析的有效日期格式,例如:

    2012-02-04T21:00:00.

    示例:http://jsfiddle.net/TQjhP/

    【讨论】:

    • 知道了,也欣赏一下jsfiddle
    猜你喜欢
    • 2012-11-03
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    相关资源
    最近更新 更多