在FireFox中用javascript解析日期

在FireFox中用javascript解析日期,javascript,date,firefox,Javascript,Date,Firefox,我有一种奇怪的日期格式,如dMMMyyyy(例如2Dec2013)。 我试图在我的javascript代码中创建日期对象: var value = "2Apr2014"; var date = new Date(value); alert(date.getTime()); 在谷歌Chrome中,该代码工作正常,但在FireFox中,它返回Null 有人能提出解决这个问题的建议吗 谢谢。适用于firefox和chrome var value = "02 Apr 2014"; var date

我有一种奇怪的日期格式,如
dMMMyyyy
(例如2Dec2013)。 我试图在我的javascript代码中创建日期对象:

var value = "2Apr2014";
var date = new Date(value);
alert(date.getTime());

谷歌Chrome中,该代码工作正常,但在FireFox中,它返回
Null

有人能提出解决这个问题的建议吗

谢谢。

适用于firefox和chrome

var value = "02 Apr 2014";
var date = new Date(value);
alert(date.getTime())
选中此复选框,您可以在浏览器中使用以下统一日期解析器

它有

代码:


把它解析成值
newdate
accepts怎么样,这样它在任何地方都可以工作

var value = "02Apr2014";

var m = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];

var month = value.replace(/\d/g,''),
    parts = value.split(month),
    day   = parseInt(parts.shift(), 10),
    year  = parseInt(parts.pop(), 10);

var date = new Date(year, m.indexOf(month), day);

我建议使用类似于解析日期的方法

我还没有测试过,但您似乎需要:

var currentDate = $.datepicker.parseDate( "dMyy", "2Apr2014" );

请注意:

  • d-月日(无前导零)
  • dd-月日(两位数)
  • 月名短
  • y年(两位数)
  • yy年(四位数字)

但是,如果出于某种原因,您真的想自己动手,那么您可以查看以下链接:

它有一些关于解析日期的有趣例子

虽然不完全是您想要的,但扩展的ISO 8601本地日期格式YYYY-MM-DD示例可以很好地说明从何处开始:

  /**Parses string formatted as YYYY-MM-DD to a Date object.
   * If the supplied string does not match the format, an 
   * invalid Date (value NaN) is returned.
   * @param {string} dateStringInRange format YYYY-MM-DD, with year in
   * range of 0000-9999, inclusive.
   * @return {Date} Date object representing the string.
   */
  function parseISO8601(dateStringInRange) {
    var isoExp = /^\s*(\d{4})-(\d\d)-(\d\d)\s*$/,
        date = new Date(NaN), month,
        parts = isoExp.exec(dateStringInRange);

    if(parts) {
      month = +parts[2];
      date.setFullYear(parts[1], month - 1, parts[3]);
      if(month != date.getMonth() + 1) {
        date.setTime(NaN);
      }
    }
    return date;
  }

尝试
var value=“2014年4月2日”
可以在chrome和firefox中使用。有关支持的格式,请参阅。如果您想使用这样的格式,我建议使用日期库,如
momentjs
,请查看
  /**Parses string formatted as YYYY-MM-DD to a Date object.
   * If the supplied string does not match the format, an 
   * invalid Date (value NaN) is returned.
   * @param {string} dateStringInRange format YYYY-MM-DD, with year in
   * range of 0000-9999, inclusive.
   * @return {Date} Date object representing the string.
   */
  function parseISO8601(dateStringInRange) {
    var isoExp = /^\s*(\d{4})-(\d\d)-(\d\d)\s*$/,
        date = new Date(NaN), month,
        parts = isoExp.exec(dateStringInRange);

    if(parts) {
      month = +parts[2];
      date.setFullYear(parts[1], month - 1, parts[3]);
      if(month != date.getMonth() + 1) {
        date.setTime(NaN);
      }
    }
    return date;
  }