解决JavaScript中调用new Date().format('yyyy-mm-dd')报错的方法

分类:知识百科 日期: 点击:0

JavaScript中调用new Date().format('yyyy-mm-dd')报错,是因为Date()构造函数没有format方法,需要借助其他方法来实现日期格式化的功能。下面介绍几种解决方案:

1. 使用Date.prototype.toLocaleString()方法

// 定义一个函数,用于将日期格式化
function formatDate(date) {
  const year = date.getFullYear();
  const month = date.getMonth() + 1;
  const day = date.getDate();
  return `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day}`;
}

// 使用toLocaleString()方法获取日期字符串
let date = new Date();
let dateStr = date.toLocaleString('zh-CN', {
  year: 'numeric',
  month: '2-digit',
  day: '2-digit'
});

// 调用formatDate()函数将日期格式化
let formatedDate = formatDate(date);

console.log(dateStr);  // 2020-06-02
console.log(formatedDate);  // 2020-06-02

在上面的代码中,我们定义了一个函数formatDate(),用于将日期格式化为yyyy-mm-dd格式,使用Date.prototype.toLocaleString()方法获取日期字符串,调用formatDate()函数将日期格式化,即可得到yyyy-mm-dd格式的日期字符串。

2. 使用Intl.DateTimeFormat()方法

// 使用Intl.DateTimeFormat()方法获取日期字符串
let date = new Date();
let dateStr = new Intl.DateTimeFormat('zh-CN', {
  year: 'numeric',
  month: '2-digit',
  day: '2-digit'
}).format(date);

console.log(dateStr);  // 2020-06-02

Intl.DateTimeFormat()方法可以接受一个参数,用于指定要格式化的日期格式,在上面的代码中,我们指定了输出格式为yyyy-mm-dd,调用format()方法,即可得到yyyy-mm-dd格式的日期字符串。

3. 使用Date.prototype.toISOString()方法

// 使用toISOString()方法获取日期字符串
let date = new Date();
let dateStr = date.toISOString().substring(0, 10);

console.log(dateStr);  // 2020-06-02

toISOString()方法会返回一个ISO标准格式的日期字符串,在上面的代码中,我们使用substring()方法截取前10个字符,即可得到yyyy-mm-dd格式的日期字符串。

4. 使用moment.js库

// 引入moment.js库
const moment = require('moment');

// 使用moment.js库获取日期字符串
let date = new Date();
let dateStr = moment(date).format('YYYY-MM-DD');

console.log(dateStr);  // 2020-06-02

moment.js是一个JavaScript日期处理库,它提供了一系列方法,可以方便地处理日期,在上面的代码中,我们引入了moment.js库,使用format()方法将日期格式化为yyyy-mm-dd格式,即可得到yyyy-mm-dd格式的日期字符串。

以上就是的介绍,其中使用Date.prototype.toLocaleString()、Intl.DateTimeFormat()、Date.prototype.toISOString()以及moment.js库可以实现日期格式化的功能,可以根据实际情况选择合适的方法。

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。