当我们在date对象上调用getMonth()和getDate()时,我们将得到一个个位数。 例如:

对于一月份,它显示为1,但我需要将其显示为01。怎么做呢?


当前回答

这就是我的解决方案:

function leadingZero(value) {
  if (value < 10) {
    return "0" + value.toString();
  }
  return value.toString();
}

var targetDate = new Date();
targetDate.setDate(targetDate.getDate());
var dd = targetDate.getDate();
var mm = targetDate.getMonth() + 1;
var yyyy = targetDate.getFullYear();
var dateCurrent = leadingZero(mm) + "/" + leadingZero(dd) + "/" + yyyy;

其他回答

我建议您使用另一个名为Moment https://momentjs.com/的库

这样你就可以直接格式化日期,而不需要做额外的工作

const date = moment().format('YYYY-MM-DD')
// date: '2020-01-04'

确保你也导入了moment,以便能够使用它。

yarn add moment 
# to add the dependency
import moment from 'moment' 
// import this at the top of the file you want to use it in

D项是正确答案

如果你能给我点时间的话我想问的是

YYYYMMDD

为了今天,和大家相处:

const dateDocumentID = new Date()
  .toISOString()
  .substr(0, 10)
  .replace(/-/g, '');

例如month:

function getMonth(date) {
  var month = date.getMonth() + 1;
  return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}  

你也可以用这样的函数来扩展Date对象:

Date.prototype.getMonthFormatted = function() {
  var month = this.getMonth() + 1;
  return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}

只是另一个例子,几乎是一行。

var date = new date (); console.log((date.getMonth() < 9 ?'0': ")+ (date.getMonth()+1));

另外一个版本在这里https://jsfiddle.net/ivos/zcLxo8oy/1/,希望对大家有用。

var dt = new Date(2016,5,1); // just for the test
var separator = '.';
var strDate = (dt.getFullYear() + separator + (dt.getMonth() + 1) + separator + dt.getDate());
// end of setup

strDate = strDate.replace(/(\b\d{1}\b)/g, "0$1")