使用fecha处理JS数据
序
目前,我们使用fecha进行数据处理,并重新打包fecha以满足项目的实际需求。
fecha简介
Fecha是一个用于数据格式化和解析的js库。它提供了强大的数据处理功能,大小只有2k。安装方法简单,只需要npm安装fecha - save
格式(日期格式)
Fecha提供了一种格式化方法。Fecha.format接收一个日期对象(或时间戳)和一个字符串形式的日期格式,然后返回一个字符串(已处理的日期)。
注意:当传入的参数无效时,fecha将报告错误
格式(日期对象,字符串格式);//自定义格式//字符串格式可以传一个自定义格式,fecha会返回对应的格式fecha.format(新日期(2015年10月20日),' ddddddmmmmdo,yyyy ';//' 2015年11月20日星期五' fecha.format(新日期(1998,5,3,15,23,10,350),' YYYY-MM-DD hh :MM 3360s。SSS A’);//' 1998-06-03 03:2:10.350pm '//用自定义常量设置日期格式fecha.format(新日期(2015年10月20日),“中日期”);//' 2015年11月20日' fecha.format(新日期(2015,2,10,5,30,20),' short time ');//'05:30'//添加一些其他常量fecha.format(新日期(2001,2,5,6,7,2,5),'[on]mm-DD-yyyy[at]hh :mm ');//' 2001年03月05日06:07 ',这样我们就可以轻松处理新日期的需求()2016年11月19日
Fecha.format(新日期(),' YYYY[年]月[日]')解析(日期解析)
Fecha还提供了一个解析方法。与格式类似,fecha.parse接收一个日期字符串和一个字符串形式的日期格式,然后返回一个日期对象。
注意:当传入的参数无效时,fecha将报告错误
//自定义格式format fecha . parse(' 2014年2月3日',' mmmmdo,yyyy ');//新日期(2014,1,3)fecha . parse(' 10-12-10 14:11:12 ',' YY-MM-DD hh :MM 3360s ');//new date(2010年11月10、14、11、12日)//通过自定义常量设置日期格式fecha.parse ('5/3/98 ',' short ');//new Date(1998,4,3)fecha . parse(' 2005年11月4日',' long Date ');//new date(2005年10月4日)自定义命名常量
fecha . masks={ ' default ' : ' DDD MMM DD YYYY ',shortDate: 'M/D/YY ',mediumDate: 'MMM D,YYY ',longDate: 'MMMM D,YYYY ',fullDate: 'dddd,MMMM D,YYYY ',shortTime: 'HH:mm ',medium time : ' hh :M :s ',longTime:SSS ' };国际支持(扩展)
在实际使用中,我们会遇到非常本地化的需求,比如设置“周一”、“周二”和“周一”的奇怪需求,或者设置为周一的“月亮日”和周二的“火日”等。
所有这些需求都可以通过解析和格式化方法中提到的i18n支持来实现。
您可以在fecha.i18n中修改相应的设置.
fecha . i18n={ daynames short :['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],daynames 3360['星期日','星期一','星期二','星期三',Monthnamshort: ['01 ',' 02 ',' 03 ',' 04 ',' 05 ',' 06 ',' 07 ',' 08 ',' 09 ',' 10 ',' 11 ',' 12'],月7 ',' 8 ',' 9 ',' 10 ',' 11 ',' 12 '],amPm: ['上午','下午'],//D是一个月中的日子,函数返回类似于.第3个或第11个DoFn:函数(D) {返回D [ 'th ',' st ',' n D ',' rd' ][ D % 10 3?0 : (D - D % 10!==10)* D % 10];} }格式化标记
fecha的重新封装
在实际需求中,我们也会遇到各种杂乱的需求
2016-11-2011-2026-11-23明天 11-2310336000下周三加100分钟.虽然fecha提供了一些实用的数据处理方法,但我们仍然需要重新打包fecha来满足实际需求。此外,fecha被打包并分离成公共组件,从而避免了多个页面的i18n配置和掩码设置。调用页面也更方便。
封装的fecha公共组件示例
从' fecha ' fecha . i18n={ daynameshort :[' Sunday ','周一','周二','周三','周四','周五','周六'],daynames 3360[' Sunday ','周一','周二'周四','周五','周六'],monthnameshort :[' 01 ',' 02 ',' 03 ',' 05 ',' 06 ',' 07 ',' 08 ',' 09 ',' 3月10 ',' 4 ',' 5 ',' 6 ',' 7 ',' 8 ',' 9 ',' 10 ',' 11.第3个或第11个DoFn:函数(D) {返回D [ 'th ',' st ',' n D ',' rd' ][ D % 10 3?0 : (D - D % 10!==10)* D % 10];} } fecha . masks={ ' default ' : ' DDD MMM DD YYYY ',shortDate: 'M/D/YY ',mediumDate: 'MMM D,YYYY ',longDate: 'MMMM D,YYY ',fullDate: 'dddd,MMMM D,YYYY ',shortTime: 'HH:mm ',medium time : ' hh :M :s ',longTime:SSS ' };//str必须是YYYYMMDD格式//yyymmddxx(今天/后天/下周一.)MM DD day fecha . getdatestring=(str,format)={ let now=date . now();让today=fecha.format.bind(null,new Date());假设明天=fecha.format.bind(null,新的Date(现在是86400 * 1000));让dayafter=fecha . format . bind(null,new Date(现在是86400 * 2 * 1000));让week _ start=parsent(today(' d '));让结果={ };//从本周一到下周日有14个字母周=[0,1,2,3,4,5,6,7,8,9,10,11,12,13]。结果[今天(YYYMMDD)]=`今天${today('MM')}月${today('DD')}日`;结果[明天(YYYMMDD)]=明天$ {明天(' MM')}月$ {明天(' DD')}日`;结果[day after(yyymmdd)]=后天${dayafter('MM')}月${dayafter('DD')}日`;weeks.slice(week_start 3)。forEach((after)={ let step=after-week _ start;let _ dayafter=fecha . format . bind(null,新的Date(现在是86400 * step * 1000));结果[_ dayafter(yyymmdd)]=` $ {(8后?在“:”下,')} $ { _ dayafter(' DDD ')} $ { _ dayafter(' mm ')}-$ { _ dayafter(' DD ')} `;})//如果发生下周一,将输出调用时传入的格式规范:return result | | format (fecha。parse (str,yyymmdd),format)}导出默认fecha。当其他页面需要使用日期处理时,您只需要调用页面上的fecha组件。
从“fecha”导入日期解析器.let date=date parser . getdatestring(' 20161123 ',' yyyy-mm-DD ').当现有的数据处理无法解决实际需求时,只需要在fecha组件中添加方法即可。写笔记,同事开发相同功能时可以直接调用,提高团队效率。
摘要
以上就是本文的全部内容。希望这篇文章的内容对你的学习或工作有所帮助。有问题可以留言交流。
版权声明:使用fecha处理JS数据是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。