JavaScript将日期前面加0

616

我创建了这个脚本来计算10天后的日期,格式为dd/mm/yyyy:

var MyDate = new Date();
var MyDateString = new Date();
MyDate.setDate(MyDate.getDate()+10);
MyDateString = MyDate.getDate() + '/' + (MyDate.getMonth()+1) + '/' + MyDate.getFullYear();

我需要在日期的日和月组成部分上添加前导零,通过将这些规则添加到脚本中来实现。但我似乎无法让它起作用。

if (MyDate.getMonth < 10)getMonth = '0' + getMonth;

if (MyDate.getDate <10)get.Date = '0' + getDate;

如果有人能告诉我在脚本中应该插入这些内容的位置,我会非常感激。


7
作为一种良好的惯例,您应该将变量名的第一个字符设置为小写,并将驼峰命名保留给对象/原型。 - zykadelic
如果YYYY-MM-DD格式可接受,这将是一个非常好的答案:https://dev59.com/UXA75IYBdhLWcg3w3NBe#28431880 - Fabien Snauwaert
2
向下滚动以查看ES6+ padStart答案 - technogeek1995
33个回答

0
对于自定义格式和历史日期 - 在Martin Braun的答案基础上 - 使用Intl.DateTimeFormat构造方法的'formatToParts',可以在返回之前轻松地手动调整格式。
以下操作确保年份始终返回4位数。

const date = new Date();

new Intl.DateTimeFormat('en-GB', {
  year: 'numeric',
  month: '2-digit',
  day: '2-digit',
}).formatToParts(date).map((obj) => {
    if (obj.type === 'year') {
      return obj.value.padStart(4, '0');
    }
    return obj.value;
  }).join('')


0
function pad(value) {
    return value.tostring().padstart(2, 0);
}

let d = new date();
console.log(d);
console.log(`${d.getfullyear()}-${pad(d.getmonth() + 1)}-${pad(d.getdate())}t${pad(d.gethours())}:${pad(d.getminutes())}:${pad(d.getseconds())}`);

2
虽然这段代码可能会回答问题,但提供有关它如何解决问题的上下文和/或原因将改善答案的长期价值。 - leopal

0
 let date = new Date();
 let dd = date.getDate();//day of month

 let mm = date.getMonth();// month
 let yyyy = date.getFullYear();//day of week
 if (dd < 10) {//if less then 10 add a leading zero
     dd = "0" + dd;
   }
 if (mm < 10) {
    mm = "0" + mm;//if less then 10 add a leading zero
  }

留学生请提供更多上下文,以便我能够准确地翻译相关的编程内容。 - Shiv Kumar Baghel

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