从Date()对象返回dd-mm-yyyy

J.a*_*arc 5 javascript date formatdatetime

期望的返回值应该是格式化为的字符串dd-mm-yyyy.

我试图给ISOString一个格式日期dd-mm-yyyy并添加GMT,但代码给了我这种格式.我能怎么做?

new Date().toISOString()
    .replace(/T/, ' ').      // replace T with a space
    .replace(/\..+/, '');     // delete the dot and everything after
Run Code Online (Sandbox Code Playgroud)

'2012-11-04 14:55:45'

Jam*_*lly 8

即时通讯寻找04-11-2012日期格式

使用今天的日期(作为ISO字符串当前为"2016-03-08T13:51:13.382Z"),您可以这样做:

new Date().toISOString().replace(/T.*/,'').split('-').reverse().join('-')
Run Code Online (Sandbox Code Playgroud)

这个输出是:

-> "08-03-2016"
Run Code Online (Sandbox Code Playgroud)

这个:

  1. 抓住日期.
  2. 将其转换为ISO字符串.
  3. 替换'T'及其后的所有内容.
  4. 通过拆分任何连字符(' - ')字符将其转换为数组.(["2016", "03", "08"])
  5. 反转数组的顺序.(["08", "03", "2016"])
  6. 将数组作为字符串连接回来,用连字符分隔每个值.

以下是使用您的日期(2012-11-04T14:55:45.000Z)作为输入的演示:

var input = "2012-11-04T14:55:45.000Z",
    output;

output = new Date(input).toISOString().replace(/T.*/,'').split('-').reverse().join('-');

document.getElementById('input').innerHTML = input;
document.getElementById('output').innerHTML = output;
Run Code Online (Sandbox Code Playgroud)
<p><strong>Input:</strong> <span id=input></span></p>
<p><strong>Output:</strong> <span id=output></span></p>
Run Code Online (Sandbox Code Playgroud)


dav*_*rey 8

您可以用来new Date().toLocaleDateString("en-US");仅返回日期。今天又回来了"3/8/2016"

new Date().toLocaleDateString().replace(/\//g, '-');将其更改为带破折号的输出。这将"3-8-2016"在今天回归。


小智 6

对于您的示例 '2012-11-04 14:55:45'

你可以做:new Date('2012-11-04 14:55:45').toISOString().split('T')[0]在一行中:)