获取当前日期的指定格式

6

如何在Javascript中获取当前日期并以"2015-03-25T12:00:00"的格式进行格式化?

我想知道是否有一个函数或方法可以实现这一点。我不是在问如何将一个字符串转换为另一个字符串。


3
Date.toISOString() 方法返回一个基于 ISO 标准的日期字符串,表示调用该方法的日期和时间。该字符串的格式为:YYYY-MM-DDTHH:mm:ss.sssZ,其中 "T" 为日期与时间之间的分隔符,“Z” 表示 UTC 时间。 - pawel
1
你在使用Date.toISOString()时要小心...它不被像IE8这样的旧浏览器支持。 - Ageonix
此外,toISOString 默认为 UTC,但 OP 似乎想要无时区(即本地时间)。 - RobG
4个回答

8

To be precise: .toISOString().slice(0, -5)

var d1 = new Date()
var str = d1.toISOString().slice(0, -5)
console.log(str);


4
如何在Javascript中获取当前日期并将其格式化为“2015-03-25T12:00:00”?这似乎是一个没有时区的ISO 8601格式日期,它将被视为“本地”时间。有一个内置的toISOString方法,但它总是使用UTC。因此,您可以编写自己的函数(非常简单,请参见下文)或使用库(如果您只想格式化日期字符串,则不需要真正的库)。没有内置的函数或方法可用于此。

/* Return an ISO 8601 string without timezone
** @param {Date} d - date to create string for
** @returns {string} string formatted as ISO 8601 without timezone
*/
function toISOStringLocal(d) {
  function z(n){return (n<10?'0':'') + n}
  return d.getFullYear() + '-' + z(d.getMonth()+1) + '-' +
         z(d.getDate()) + 'T' + z(d.getHours()) + ':' +
         z(d.getMinutes()) + ':' + z(d.getSeconds())
          
}

document.write(toISOStringLocal(new Date()));


4
使用moment.js,它会让你大开眼界。将此脚本添加到您的HTML中。
<script type="text/javascript" src="http://momentjs.com/downloads/moment-with-locales.js"></script>

使用以下代码:

var date=moment().format('YYYY-MM-DDTHH:mm:ss');

0

试试这个函数:

function(d) {

    var cad = "";

    try{
              cad =  d.getUTCFullYear() + "-" + pad(d.getMonth() + 1) + "-" + pad(d.getUTCDate()) + "T" + pad(d.getHours()) 
              + ":" + pad(d.getUTCMinutes()) + ":" + pad( d.getSeconds()) ;  

      return cad;
    }catch(e){
      return null;
    }  

  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接