神奇的 toLocaleString

时间:2025-03-29 20:39:29
  • 首先来看两个比较特殊的 weekdayera (即‘公元’),它俩均可以取值为 narrowshort 以及 long,简单说就是能有多短就有多短、缩写以及正常写法,还是撸代码吧:
    const date = new Date();
    date.toLocaleString('en', { weekday: 'narrow', era: 'narrow' }); //W A
    date.toLocaleString('en', { weekday: 'short', era: 'short' }); //Wed AD
    date.toLocaleString('en', { weekday: 'long', era: 'long' }); //Wednesday Anno Domini
    
  • 之后再看看 timeZoneName 属性,这个属性只有 shortlong 两个值,具体中文怎么翻译我也不清楚,不过看了代码应该就知道有何用了:
    const date = new Date();
    date.toLocaleString('zh', { timeZoneName: 'short' });  //2018/4/5 GMT+8 下午7:18:26
    date.toLocaleString('zh', { timeZoneName: 'long' });   //2018/4/5 中国标准时间 下午7:18:26、
    
  • 剩下的属性,均可以取值为 numeric2-digit ,简单说来就是是否用两位数字表示,看码说话:
    const date = new Date();
    date.toLocaleString('zh', { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', });  //2018/4/5 下午7:30:17
    date.toLocaleString('zh', { year: '2-digit', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' });  //18/04/05 下午7:30:17
    
  • 最后值得一说的是 month 这个属性,因为语言对于月份来说有不同的展现,因此除去 numeric2-digit 外,它还有额外的三个属性,分别是 narrowshortlong,具体还是来看代码:
    const date = new Date();
    date.toLocaleString('en', { month: 'narrow' }); //A
    date.toLocaleString('en', { month: 'short' }); //Apr
    date.toLocaleString('en', { month: 'long' }); //April