¼ò½é
IntlÊÇÒ»¸öÈ«¾Ö¶ÔÏó£¬ËüµÄÖ÷ÒªÓÃ;¾ÍÊÇչʾ¹ú¼Ê»¯ÐÅÏ¢£¬¿ÉÒÔ½«×Ö·û´®£¬Êý×ÖºÍÈÕÆÚºÍʱ¼äת»»ÎªÖ¸¶¨µØÇøµÄ¸ñʽ¡£
ÔÚÇ°¶Ë¿ª·¢ÖУ¬ÎÒÃÇͨ³£»áʹÓõÚÈý·½¿âÀ´´¦ÀíÈÕÆÚºÍÊý×ֵĸñʽ»¯£¬±ÈÈçnumeral¡¢dayjs¡¢date-fnsµÈ¿â£¬ÕâЩ¿â°üº¬ÁËÐí¶àµÄ¹¦ÄÜ£¬Èç¹ûÎÒÃÇÔÚÏîÄ¿Öнö½öֻʹÓÃÁ˸ñʽ»¯µÄ¹¦ÄܵĻ°ÆäʵÊÇ¿ÉÒÔ²»ÓÃÒýÈëÕâЩ¿âµÄ£¬JavaScript×Ô´øµÄIntlAPI¼´¿ÉÂú×ã¸ñʽ»¯µÄÐèÇó¡£
¹¹Ôì
Collator£¬DateTimeFormat£¬ListFormat£¬NumberFormat£¬PluralRules£¬RelativeTimeFormatÊÇÃüÃû¿Õ¼äIntlÖеĹ¹Ô캯Êý¡£ËüÃǽÓÊÜÁ½¸ö²ÎÊý-localesºÍoptions¡£locales±ØÐëÊÇ·ûºÏBCP47ÓïÑÔ±ê¼ÇµÄ×Ö·û´®»ò×Ö·û´®Êý×é¡£
locales²ÎÊý
ÆäÖÐlocalesÖг£ÓõÄÓУº
Öµº¬Òå
zh-HantÓ÷±Ìå×ÖÊéдµÄÖÐÎÄ
zh-HansÓüòÌå×ÖÊéдµÄÖÐÎÄ
zh-cmn-Hans-CNÖÐÎÄ£¬ÆÕͨ»°£¬¼òÌ壬ÓÃÓÚÖйú
zh-Hans-CN¼òÌåÖÐÎÄ£¬ÓÃÓÚÖйú´ó½
zh-yue-HKÖÐÎÄ£¬¹ã¶«»°£¬Ïã¸ÛÌرðÐÐÕþÇøʹÓÃ
cmn-Hans-CN¼òÌåÖÐÎÄ£¬ÓÃÓÚÖйú
yue-HKÔÁÓÏã¸ÛÌرðÐÐÕþÇøʹÓÃ
en-USÃÀʽӢÓï(USEnglish)
en-GBӢʽӢÓï(BritishEnglish)
ko-KRº«Óï
ja-JPÈÕÓï
options²ÎÊý
options²ÎÊý±ØÐëÊÇÒ»¸ö¶ÔÏó£¬ÆäÊôÐÔÖµÔÚ²»Í¬µÄ¹¹Ô캯ÊýºÍ·½·¨ÖлáÓÐËù±ä»¯¡£Èç¹ûoptions²ÎÊýδÌṩ»òÕßΪundefined£¬ËùÓеÄÊôÐÔÖµÔòʹÓÃĬÈϵġ£
Intl.NumberFormat
Intl.NumberFormat¶ÔÏóÄÜʹÊý×ÖÔÚÌض¨µÄÓïÑÔ»·¾³Ï¸ñʽ»¯¡£
constnumber=123456.789
console.log(newIntl.NumberFormat('de-DE',{style:'currency',currency:'EUR'}).format(number))
//Expectedoutput:"123.456,79€"
//TheJapaneseyendoesn'tuseaminorunit
console.log(newIntl.NumberFormat('ja-JP',{style:'currency',currency:'JPY'}).format(number))
//Expectedoutput:"£¤123,457"
console.log(newIntl.NumberFormat('zh-CN',{}).format(number))
//"123,456.789"
³£ÓÃoptions²ÎÊý
style£ºÒªÊ¹ÓõĸñʽÑùʽ£¬Ä¬ÈÏΪdecimal¡£
decimalÓÃÓÚÆÕͨÊý×Ö¸ñʽ¡£
currencyÓÃÓÚ»õ±Ò¸ñʽ¡£
percentÓÃÓڰٷֱȸñʽ¡£
unitÓÃÓÚµ¥Î»¸ñʽ¡£
currency£ºÓÃÓÚ»õ±Ò¸ñʽµÄ»õ±Ò£¨Ã»ÓÐĬÈÏÖµ£¬Èç¹ûstyleµÄÖµÊÇcurrencyÔò±ØÐëÌṩ£©¡£¿ÉÄܵÄÖµÊÇISO4217»õ±Ò´úÂ룬ÀýÈçCNY´ú±íÈËÃñ±Ò£¬USD´ú±íÃÀÔª£¬EUR´ú±íÅ·Ôª£¬JPY´ú±íÈÕÔª¡£
currencyDisplay£ºÈçºÎÒÔ»õ±Ò¸ñʽÏÔʾ»õ±Ò¡£¿ÉÄܵÄÖµÊÇ£º
symbolʹÓñ¾µØ»¯µÄ»õ±Ò·ûºÅ£¬ÀýÈ瀡£ÕâÊÇĬÈÏÖµ¡£
narrowSymbolʹÓüò³Æ£¨$100¶ø²»ÊÇUS$100£©¡£
codeʹÓÃISO»õ±Ò´úÂë¡£
nameʹÓñ¾µØ»¯µÄ»õ±ÒÃû³Æ£¬ÀýÈçdollar¡£
currencySign£ºÔÚÐí¶àÇøÓòÉèÖÃÖУ¬¼ÇÕʸñʽ½«Êý×ÖÀ¨ÔÚÀ¨ºÅÖжø²»ÊÇÌí¼Ó¼õºÅ¡£currencySignͨ¹ý½«Ñ¡ÏîÉèÖÃΪaccountingÆôÓô˸ñʽ¡£Ä¬ÈÏΪstandard¡£
unit£ºunitµÄ¸ñʽÖÐʹÓõĵ¥Î»£¬¿ÉÄܵÄÖµÊǺËÐĵ¥Î»±êʶ·û£¬ÈçUTS#35£¬µÚ2²¿·Ö£¬µÚ6½ÚÖÐËù¶¨Òå¡£´ÓÕû¸öÁбíÖÐÑ¡ÔñÁËÒ»²¿·Öµ¥ÔªÓÃÓÚECMAScript¡£Ò»¶Ô¼òµ¥µ¥Î»-per-¿ÉÒÔÓÃ×éºÏ³ÉÒ»¸ö¸´ºÏµ¥Î»¡£Ã»ÓÐĬÈÏÖµ¡£Èç¹ûÊÇstyleΪunit£¬Ôò±ØÐëÖ¸¶¨¸ÃÊôÐÔ¡£
unitDisplay£ºunitÓÃÓÚ¸ñʽ»¯µÄµ¥Î»¸ñʽ»¯Ñùʽ£¬Ä¬ÈÏΪshort¡£
long£¨ÀýÈç16litres£©
short£¨ÀýÈç16l£©
narrow£¨ÀýÈç16l£©
notation£ºÒ»ÖÖÏÔʾÊýÖµµÄ¸ñʽ¡£Ä¬ÈÏΪstandard¡£
standardÊÇÕý³£µÄÊý×Ö¸ñʽ¡£
scientific£ºÊ¹ÓÿÆѧ¼ÇÊý·¨±íʾ£¬±ÈÈç4.5E5¡£
engineering£º·µ»Ø10µÄÃÝÄܹ»±»3Õû³ýµÄ¿Æѧ¼ÆÊý±íʾ£¨Èç¹ûÒ»¸öÊýСÓÚ1000£¬Ôò±íʾΪ123-123E0£¬Èç¹ûÒ»¸öÊý´óÓÚ1000СÓÚ1000000£¬Ôò±íʾΪ45100-45.1E3£©¡£
compactÊDZíʾָÊý±íʾ·¨µÄ×Ö·û´®£¬Ä¬ÈÏʹÓᰶ̡±¸ñʽ¡£
compactDisplay£º½öÔÚnotationΪcompactʱʹÓ᣿ÉÒÔÊÇshort£¨Ä¬ÈÏ£©»òlong¡£
maximumFractionDigits£º×î´ó·ÖÊýλÊý£¨×î¶à±£Áô¼¸Î»Ð¡Êý£©
minimumFractionDigits£º×îС·ÖÊýλÊý£¨×îÉÙ±£Áô¼¸Î»Ð¡Êý£©
maximumSignificantDigits£º×î¶à¼¸Î»ÓÐЧÊý×Ö
Àý×Ó
»õ±Ò
constnumbers=[245,2345234.2345,3456]
constformatter=newIntl.NumberFormat('zh-CN',{
style:'currency',
currency:'CNY',
minimumFractionDigits:2,
maximumFractionDigits:2,
})
numbers.forEach((number)=>{
console.log(formatter.format(number))
})
//¥245.00
//¥2,345,234.23
//¥3,456.00
newIntl.NumberFormat('cmn-Hans-CN',{
style:'currency',
currency:'CNY',
currencyDisplay:'name',
minimumFractionDigits:2,
maximumFractionDigits:2,
}).format(245)//245.00ÈËÃñ±Ò
newIntl.NumberFormat('cmn-Hans-CN',{
style:'currency',
currency:'CNY',
currencyDisplay:'name',
minimumFractionDigits:2,
maximumFractionDigits:2,
}).format(2345234.2345)//2,345,234.23ÈËÃñŽÅ
°Ù·Ö±È
newIntl.NumberFormat('cmn-Hans-CN',{style:'percent'}).format(34)//3,400%
newIntl.NumberFormat('cmn-Hans-CN',{style:'percent'}).format(0.34)//34%
µ¥Î»¸ñʽ
newIntl.NumberFormat('cmn-Hans-CN',{style:'unit',unit:'kilometer-per-hour'}).format(4522)//4,522km/h
newIntl.NumberFormat('cmn-Hans-CN',{
style:'unit',
unit:'kilometer-per-hour',
unitDisplay:'long',
}).format(4522)//ÿСʱ4,522¹«Àï
newIntl.NumberFormat('cmn-Hans-CN',{
style:'unit',
unit:'kilometer-per-hour',
unitDisplay:'narrow',
}).format(4522)//4,522km/h
¿ÆѧËõд
console.log(newIntl.NumberFormat('cmn-Hans-CN',{notation:'scientific'}).format(452136))//4.521E5
console.log(newIntl.NumberFormat('cmn-Hans-CN',{notation:'engineering'}).format(452136))//452.136E3
console.log(newIntl.NumberFormat('cmn-Hans-CN',{notation:'compact'}).format(452136))//45Íò
Intl.DateTimeFormat
Intl.DateTimeFormat¶ÔÏóÄÜʹÈÕÆÚºÍʱ¼äÔÚÌض¨µÄÓïÑÔ»·¾³Ï¸ñʽ»¯¡£
³£ÓÃoptions²ÎÊý
dateStyle£ºµ÷ÓÃformat()ʱʹÓõÄÈÕÆÚ¸ñʽÑùʽ¡£¿ÉÄܵÄÖµ°üÀ¨£º
full
long
medium
short£¨Ä¬ÈÏÖµ£©
timeStyle£ºµ÷ÓÃformat()ʱʹÓõÄʱ¼ä¸ñʽÑùʽ¡£¿ÉÄܵÄÖµ°üÀ¨£º
full
long
medium
short£¨Ä¬ÈÏÖµ£©
dayPeriod:ÓÃÓÚ¡°ÔçÉÏ¡±¡¢¡°ÉÏÎ硱¡¢¡°ÖÐÎ硱¡¢¡°n¡±µÈÈÕÆÚʱ¼ä¶ÎµÄ¸ñʽÑùʽ¡£¿ÉÄܵÄÖµ°üÀ¨£ºnarrow,short,long
timeZone:ʱÇø£¬±ÈÈçÉϺ£¡°Asia/Shanghai¡±£¬Å¦Ô¼ÊÇ"America/New_York"
hourCycle:ҪʹÓõÄСʱÖÜÆÚ£¨12СʱÖÆ£¬24СʱÖÆ£©Öµ¿ÉÒÔΪ£ºh11¡¢h12¡¢h23¡¢h24
weekday:¹¤×÷ÈյıíʾÐÎʽ¡£¿ÉÄܵÄֵΪ£º
long£¨ÀýÈ磬Thursday)
short£¨ÀýÈ磬Thu)
narrow£¨ÀýÈ磬£©¡£Á½¸ö¹¤×÷ÈÕ¿ÉÄܶÔÓÚijЩÓïÑÔ»·¾³¾ßÓÐÏàͬµÄÕÑùʽ£¨ÀýÈçµÄÕÑùʽҲÊÇ£©¡£TTuesdayT
year:Äê·ÝµÄ±íʾ¡£¿ÉÄܵÄֵΪ£º
numeric£¨ÀýÈ磬2012)
2-digit£¨ÀýÈ磬12)
month:Ô·ݵıíʾ¡£¿ÉÄܵÄֵΪ£º
numeric£¨ÀýÈ磬2)
2-digit£¨ÀýÈ磬02)
long£¨ÀýÈ磬March)
short£¨ÀýÈ磬Mar)
narrow
day:Ò»ÌìµÄ±íʾ¡£¿ÉÄܵÄֵΪ£º
numeric£¨ÀýÈ磬1)
2-digit£¨ÀýÈ磬01)
hour:СʱµÄ±íʾ¡£¿ÉÄܵÄֵΪ£º
numeric£¨ÀýÈ磬1)
2-digit£¨ÀýÈ磬01)
minute:·ÖÖӵıíʾ¡£¿ÉÄܵÄֵΪ£º
numeric£¨ÀýÈ磬1)
2-digit£¨ÀýÈ磬01)
second:ÃëµÄ±íʾ¡£¿ÉÄܵÄֵΪ£º
numeric£¨ÀýÈ磬1)
2-digit£¨ÀýÈ磬01)
fractionalSecondDigits:ÓÃÓÚ±íʾÃëСÊý²¿·ÖµÄλÊý£¨ÆäËûµÄÊý×Ö½«±»½Ø¶Ï£©¡£¿ÉÄܵÄֵΪ£º
0:СÊý²¿·ÖÈ«²¿¶ªÆú¡£
1:СÊý²¿·Ö±íʾΪ1λÊý×Ö¡£ÎªÀýÈç.736µÄ¸ñʽΪ.7
2:СÊý²¿·Ö±íʾΪ2λÊý×Ö¡£ÎªÀýÈç.736µÄ¸ñʽΪ.73
3:СÊý²¿·Ö±íʾΪ3λÊý×Ö¡£ÎªÀýÈç.736µÄ¸ñʽΪ.736
Àý×Ó
constdate=newDate(Date.UTC(2012,11,20,3,0,0));
console.log(newIntl.DateTimeFormat('zh-CN').format(date));//"2012/12/20"
console.log(newIntl.DateTimeFormat('zh-CN',{
dateStyle:'full',
timeStyle:'long',
timeZone:'Asia/Shanghai'
}).format(date));//¡°2012Äê12ÔÂ20ÈÕÐÇÆÚËÄGMT+811:00:00¡±
console.log(newIntl.DateTimeFormat('zh-CN',{
dateStyle:'full',
timeStyle:'short',
timeZone:'Asia/Shanghai'
}).format(date));//¡°2012Äê12ÔÂ20ÈÕÐÇÆÚËÄ11:00¡±
console.log(newIntl.DateTimeFormat('zh-CN',{
year:'numeric',
month:'2-digit',
day:'2-digit'
}).format(date));//¡°2012/12/20¡±
|