我有一个日期,格式是2014年5月11日太阳。如何使用JavaScript将其转换为2014-05-11 ?

函数taskDate(dateMilli) { var d = (new Date(dateMilli) + ")。分割(' '); D [2] = D [2] + ','; 返回[d[0], d[1], d[2], d[3]]。加入(' '); } var datemilli =日期。解析(' 2014年5月11日'); console.log (taskDate (datemilli));

上面的代码给了我相同的日期格式,2014年5月11日。我该如何解决这个问题?


当前回答

使用joda-js并完成它:

import { DateTimeFormatter, LocalDateTime } from 'js-joda'

const now = LocalDateTime.now()
now.format(DateTimeFormatter.ofPattern('yyyyMMdd-HH:mm:ss'))
// Outputs: 20221104-09:25:09 according to your timezone (mine is 'America/New_York'

其他回答

检索年、月和日,然后将它们组合在一起。直接、简单、准确。

函数formatDate(日期){ var year = date.getFullYear().toString(); var month = (date.getMonth() + 101).toString().substring(1); var day = (date.getDate() + 100).toString().substring(1); 返回年+“-”+月+“-”+日; } / /使用例子: 警报(formatDate(新日期()));

只需检索年、月和日,然后将它们组合在一起。

函数dateFormat(日期){ const day = date.getDate(); const month = date.getMonth() + 1; const year = date.getFullYear(); 返回“${一},{月}-{一}美元”; } console.log (dateFormat(新日期()));

你可以:

函数formatDate(日期){ var d = new Date(日期), 月= " + (d.getMonth() + 1) ", day = " + d.getDate(), year = d.g getfullyear (); 如果(月。长度< 2) 月= '0' +月; 如果一天。长度< 2) Day = '0' + Day; 返回[年,月,日].join('-'); } console.log(formatDate('Sun May 11,2014'));

使用的例子:

console.log(formatDate('Sun May 11,2014'));

输出:

2014-05-11

JSFiddle的演示:http://jsfiddle.net/abdulrauf6182012/2Frm3/

所有给出的答案都很棒,对我帮助很大。在我的情况下,我希望以yyyy mm dd格式和date-1获取当前日期。以下是对我有效的方法。

var endDate = new Date().toISOString().slice(0, 10); // To get the Current Date in YYYY MM DD Format

var newstartDate = new Date();
newstartDate.setDate(newstartDate.getDate() - 1);
var startDate = newstartDate.toISOString().slice(0, 10); // To get the Yesterday's Date in YYYY MM DD Format
alert(startDate);

这些答案没有一个让我很满意。我想要一个跨平台的解决方案,让我可以在不使用任何外部库的情况下使用本地时区的一天。

这是我想到的:

function localDay(time) {
  var minutesOffset = time.getTimezoneOffset()
  var millisecondsOffset = minutesOffset*60*1000
  var local = new Date(time - millisecondsOffset)
  return local.toISOString().substr(0, 10)
}

它应该在日期引用的时区中以YYYY-MM-DD格式返回日期的日期。

因此,例如,localDay(new Date("2017-08-24T03:29:22.099Z"))将返回"2017-08-23",即使它在UTC已经是24日。

你需要填充Date.prototype.toISOString,它才能在Internet Explorer 8中工作,但它应该在其他任何地方都能得到支持。