资讯专栏INFORMATION COLUMN

FE.ES-了解JS数据本土化

zqhxuyuan / 551人阅读

摘要:相对时间本土化支持昨天前天数字本土化分组逗号分隔科学计数保留位小数保留位百分制货币人民币汉字一二三四五六七八九一二三四五六二日期时间本土化时间本土化上午日期本土化配置项

相对时间本土化

支持 "second", "minute", "hour", "day", "week", "month", "quarter", "year"

</>复制代码

  1. var rtf = new Intl.RelativeTimeFormat("zh-Hans-CN",{numeric: "auto"});
  2. rtf.format(-1, "day");
  3. //"昨天"
  4. rtf.format(-2, "day");
  5. //"前天"

</>复制代码

  1. var rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
  2. rtf.format(-1, "day");
  3. // "yesterday"
  4. rtf.format(1, "day");
  5. //"tomorrow"
数字本土化 分组逗号分隔

</>复制代码

  1. (1234.2345).toLocaleString("en-US",{useGrouping:true});
  2. //"1,234.235"
科学计数保留位

</>复制代码

  1. (1234.2345).toLocaleString("zh-CN", {style:"decimal",maximumSignificantDigits:2});
  2. //"1,200"
小数保留位

</>复制代码

  1. (1234.2345).toLocaleString("zh-CN", { style: "decimal",maximumFractionDigits:3});
  2. //"1,234.235"
百分制

</>复制代码

  1. (1234.2345).toLocaleString("zh-CN", { style: "percent",maximumFractionDigits:2});
  2. //"123,423.45%"
货币

</>复制代码

  1. (1234.23).toLocaleString("zh-CN", { style: "currency",currency:"CNY",
  2. currencyDisplay:"symbol",
  3. maximumFractionDigits:2});
  4. //"¥1,234.23"
  5. (1234.23).toLocaleString("zh-CN", { style: "currency",currency:"CNY",
  6. currencyDisplay:"code",
  7. maximumFractionDigits:2});
  8. //"CNY 1,234.23"
  9. (1234.23).toLocaleString("zh-CN", { style: "currency",currency:"CNY",
  10. currencyDisplay:"name",
  11. maximumFractionDigits:2});
  12. //"1,234.23 人民币"
汉字

</>复制代码

  1. (1234567890).toLocaleString("zh-Hans-CN-u-nu-hanidec",{useGrouping:false})
  2. //"一二三四五六七八九〇"
  3. (123456.0199).toLocaleString("zh-Hans-CN-u-nu-hanidec")
  4. //"一二三,四五六.〇二"
日期时间本土化

</>复制代码

  1. var date=new Date(Date.UTC(2012, 11, 20, 3, 0, 0))
  2. Intl.DateTimeFormat("en-US").format(date)//"12/20/2012"
  3. Intl.DateTimeFormat("en-GB").format(date)//"20/12/2012"
  4. Intl.DateTimeFormat("ko-KR").format(date)//"2012. 12. 19."
  5. Intl.DateTimeFormat("ar-EG").format(date)//"١٩‏/١٢‏/٢٠١٢"
时间本土化

</>复制代码

  1. date.toLocaleTimeString("zh-Hans-CN")
  2. //"上午11:00:00"
日期本土化

</>复制代码

  1. date.toLocaleDateString("zh-Hans-CN")
  2. "2012/12/20"
Date.prototype.tiLiocaleString 配置项

</>复制代码

  1. date.toLocaleString("zh-Hans-CN",{
  2. year:"numeric",
  3. month:"2-digit",
  4. day:"2-digit",
  5. weekday:"long",
  6. hour:"2-digit",
  7. minute:"2-digit",
  8. second:"2-digit",
  9. hour12: false,
  10. timeZone:"Asia/Shanghai",
  11. })
  12. //"2012年12月20日星期四 11:00:00"
Intl格式化(含时区转换)

</>复制代码

  1. Intl.DateTimeFormat("zh-Hans-CN",{
  2. year:"numeric",
  3. month:"2-digit",
  4. day:"2-digit",
  5. hour:"2-digit",
  6. minute:"2-digit",
  7. second:"2-digit",
  8. hour12: false,
  9. timeZone:"Asia/Shanghai"
  10. }).format(date);
  11. //"2012/12/20 11:00:00"
Intl格式化分片

</>复制代码

  1. Intl.DateTimeFormat("zh-Hans-CN",{
  2. year:"numeric",
  3. month:"2-digit",
  4. day:"2-digit",
  5. hour:"2-digit",
  6. minute:"2-digit",
  7. second:"2-digit",
  8. hour12: false,
  9. timeZone:"Asia/Shanghai",
  10. }).formatToParts(date)
  11. /*
  12. 0: {type: "year", value: "2012"}
  13. 1: {type: "literal", value: "/"}
  14. 2: {type: "month", value: "12"}
  15. 3: {type: "literal", value: "/"}
  16. 4: {type: "day", value: "12"}
  17. 5: {type: "literal", value: " "}
  18. 6: {type: "hour", value: "11"}
  19. 7: {type: "literal", value: ":"}
  20. 8: {type: "minute", value: "00"}
  21. 9: {type: "literal", value: ":"}
  22. 10: {type: "second", value: "00"}
  23. */
农历阳历转换

</>复制代码

  1. Intl.DateTimeFormat("zh-Hans-CN-u-ca-chinese").format(date);
  2. //"29/11/8"
  3. //备注:农历壬辰年 十一月初八
  4. zhMon=[" 甲乙丙丁戊己庚辛壬癸"," 子丑寅卯辰巳午未申酉戌亥"]
  5. zhMon[0][29%10]+zhMon[1][29%12]//壬辰

</>复制代码

  1. date.toLocaleString("zh-Hans-CN-u-ca-chinese")
  2. //"29/11/8 上午11:00:00"
星期文案转换

</>复制代码

  1. (new Date("2001-01-01")).toLocaleString("zh-Hans-CN",{weekday:"long"})
  2. //"星期一"
  3. (new Date("2001-01-07")).toLocaleString("zh-Hans-CN",{weekday:"short"})
  4. //"周日"

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/103088.html

相关文章

  • FE.ES-(for...of) 可迭代对象Range(n) in JS

    摘要:可迭代对象浏览器需支持注意返回一个实时的返回一个静态的语句在可迭代对象上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。与的区别语句以原始插入顺序迭代对象的可枚举属性。语句遍历可迭代对象定义要迭代的数据。 可迭代对象 Array [10, 20, 30] String boo TypedArrayc new Uint8Array([0x00, 0xff]) ...

    miracledan 评论0 收藏0
  • FE.ES-JavaScript的模块化历史

    摘要:模块化之前的污染,命名污染命名空间模式减少上变量数量,但仍不安全匿名闭包模式应用由模块组成,采用模块规范。要想让模块再次运行,必须清除缓存。中优先于模块内的其他内容执行。与其对应的值是动态绑定关系,实时取到模块内部的值。 模块化之前的JavaScript //Global污染,命名污染 function foo(){} //命名空间 NameSpace模式 var Module= { ...

    caoym 评论0 收藏0
  • FE.ES-理解ECMA Javascript的原型

    摘要:但是,它是用构造器调用来这样做的。本质是因为让函数调用变成了构造器调用假设有一个需要继承的一个类型添加一个属性如何检查类继承自省错误方法只能查询的祖先。 名词解析 字面量对象字面量 var a = {};数组字面量 var arr = [1,2,3];正则表达式字面量 var reg = /[a-z]/g; 属性描述符 configurable:fasle是一个单向操作,同时阻止使...

    ssshooter 评论0 收藏0
  • FE.ES-理解ECMA Javascript的原型

    摘要:但是,它是用构造器调用来这样做的。本质是因为让函数调用变成了构造器调用假设有一个需要继承的一个类型添加一个属性如何检查类继承自省错误方法只能查询的祖先。 名词解析 字面量对象字面量 var a = {};数组字面量 var arr = [1,2,3];正则表达式字面量 var reg = /[a-z]/g; 属性描述符 configurable:fasle是一个单向操作,同时阻止使...

    Charles 评论0 收藏0
  • FE.ES-理解ECMA Javascript的原型

    摘要:但是,它是用构造器调用来这样做的。本质是因为让函数调用变成了构造器调用假设有一个需要继承的一个类型添加一个属性如何检查类继承自省错误方法只能查询的祖先。 名词解析 字面量对象字面量 var a = {};数组字面量 var arr = [1,2,3];正则表达式字面量 var reg = /[a-z]/g; 属性描述符 configurable:fasle是一个单向操作,同时阻止使...

    刘东 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<