0

我用来执行此操作的当前代码如下所示,

x3 = new Date(x1.value).format('yyyymmdd');

这在 Firefox、Chrome 和其他所有设备中运行良好,除了出色的 Internet Explorer。

我尝试过其他代码,例如...

<script>

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);
      }
    }

    alert(date);
    return date;

}   

parseISO8601('2013-01-21'); 

</script>

这适用于所有浏览器,但给了我这样的输出.....

Mon Jan 21 2013 00:00:00 GMT+0000 (GMT Standard Time)

当我真的需要它看起来像这样时

20130121

有没有人遇到过这个问题并想办法解决???

4

1 回答 1

1

使用此处的函数根据您从函数返回的日期构建一个新字符串。

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date

getDate()、getMonth() 等应该是您正在寻找的

例子:

var toConvert = parseISO8601('2013-01-21');
var newForm = toConvert.getYear().toString()+toConvert.getMonth().toString()+toConvert.getDate().toString();

然后,如果您需要整数形式的 newForm,则只需运行 parseInt(newForm);

于 2013-01-16T10:31:14.223 回答