时间:2022-02-11 10:01:48 | 栏目:JavaScript代码 | 点击:次
研究Object
对象的时候,看到了 toLocaleString()
这个方法可以很简单的实现时间格式化。
正常思路是通过Date的实例依次获取年月日等,例如一个简单的格式化例子:
Date.prototype.format = function(dateStr) { let date = new Date(); let year = date.getFullYear(); let month = date.getMonth() + 1; let day = date.getDate().toString().padStart(2, "0"); let hour = date.getHours(); let minute = date.getMinutes(); let second = date.getSeconds(); dateStr = dateStr.replace("年", year) .replace("月", month) .replace("日", day) .replace("小时", hour) .replace("分钟", minute) .replace("秒", second); return dateStr; }; // 使用上面的方法 console.log(new Date().format("年-月-日")); // 2021-11-04
toLocaleString()
和 toString()
类似,也是返回对象的字符串,不过会根据本地化的执行环境处理。尤其是对时间对象的支持,可以转成一定的格式。
// 日期,输出当前时间 let date = new Date(); // 这个是格林威治时间格式 console.log(date.toString()); // Thu Nov 04 2021 10:11:35 GMT+0800 (中国标准时间) // 这个是本地时间格式 console.log(date.toLocaleString()); // 2021/11/4 上午10:18:08
新版本浏览器可以支持 locales 和 options 参数:
let date = new Date(); // 24小时制 let options = { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: false }; console.log(date.toLocaleString("zh-CN", options)); // 2021/11/4 10:33:01
获取星期几:
let date = new Date(); let options = { weekday: "long" }; console.log(date.toLocaleString("zh-CN", options)); // 星期四
options
更多的参数可以参考文章尾部提供的链接。
缺陷:
如果要显示 x年x月x日 这样的格式,目前没有找合适的写法,相对来讲 toLocaleString() 功能比较局限一些。