以YYYY/mm/dd hh:m:sec格式输出Javascript日期

sar*_*ake 51 javascript datetime

我需要以YYYY/mm/dd hh:m:sec格式捕获Now()日期和时间.它需要在GMT时间.

如何使用Javascript实现这一目标?

Jos*_*kle 78

您可以手动构建它:

var m = new Date();
var dateString = m.getUTCFullYear() +"/"+ (m.getUTCMonth()+1) +"/"+ m.getUTCDate() + " " + m.getUTCHours() + ":" + m.getUTCMinutes() + ":" + m.getUTCSeconds();
Run Code Online (Sandbox Code Playgroud)

并强制需要它的值的两位数,你可以使用这样的东西:

("0000" + 5).slice(-2)
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

var m = new Date();
var dateString =
    m.getUTCFullYear() + "/" +
    ("0" + (m.getUTCMonth()+1)).slice(-2) + "/" +
    ("0" + m.getUTCDate()).slice(-2) + " " +
    ("0" + m.getUTCHours()).slice(-2) + ":" +
    ("0" + m.getUTCMinutes()).slice(-2) + ":" +
    ("0" + m.getUTCSeconds()).slice(-2);

console.log(dateString);
Run Code Online (Sandbox Code Playgroud)

  • `getUTCMonth`返回0到11范围内的值,因此您需要在转换为字符串之前添加一个值. (3认同)
  • 这很丑。必要,但丑陋。 (3认同)

Mar*_*ese 16

没有图书馆,一行,适当地填充

str = (new Date()).toISOString().slice(0, 19).replace(/-/g, "/").replace("T", " ");
Run Code Online (Sandbox Code Playgroud)

它使用内置功能Date.toISOString(),截断ms,用斜杠替换连字符,并将T替换为从say '2019-01-05T09:01:07.123'到的空格'2019/01/05 09:01:07'

当地时间而不是UTC

now = new Date();
const offsetMs = now.getTimezoneOffset() * 60 * 1000;
const dateLocal = new Date(now.getTime() - offsetMs);
str = dateLocal.toISOString().slice(0, 19).replace(/-/g, "/").replace("T", " ");
Run Code Online (Sandbox Code Playgroud)


小智 14

使用jQuery日期格式:

$.format.date(new Date(), 'yyyy/MM/dd HH:mm:ss');
Run Code Online (Sandbox Code Playgroud)

https://github.com/phstc/jquery-dateFormat

请享用