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库可以实现日期格式化的功能,可以根据实际情况选择合适的方法。