首先参考文档

  1. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
    2.http://stackoverflow.com/questions/10830357/javascript-toisostring-ignores-timezone-offset

第一种可以马上想到的是使用Date对象的api方法,获得年份,月份,天,小时,分钟和秒数,就可以拼出来。从Date.prototype.toISOString方法稍微改造就可以了:

if (!Date.prototype.toISOString) {
  (function() {

    function pad(number) {
      if (number < 10) {
        return '0' + number;
      }
      return number;
    }

    Date.prototype.toISOString = function() {
      return this.getUTCFullYear() +
        '-' + pad(this.getUTCMonth() + 1) +
        '-' + pad(this.getUTCDate()) +
        ' ' + pad(this.getUTCHours()) +
        ':' + pad(this.getUTCMinutes()) +
        ':' + pad(this.getUTCSeconds())
        ;
    };

  }());
}

还有一种取巧的办法,但不一定高效:

var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toISOString().replace("T", " ").replace(/\..+$/,"");
//"2015-12-10 16:11:25"

Honwhy
7k 声望96 粉丝

神兽党有福了