让日期区间更友好!
易读格式应该是用月份名称代替月份数字,用序数词代替数字来表示天(第一代替1)。
记住不要显示那些可以被推测出来的信息:如果一个日期区间里结束日期与开始日期相差小于一年,则结束日期就不用写年份了。月份开始和结束日期如果在同一个月,则结束日期月份就不用写了
。另外,如果开始日期年份是当前年份,且结束日期与开始日期小于一年,则开始日期的年份也不用写。
函数makeFriendlyDates (arr) {//获得目前的年份 var yearnow=(新日期()).getFullYear ();//把传入的参数放入字符串数组,创建日期类型也可以 var date1 arr=[0] .split (“-”); var date2 arr=[1] .split (“-”);//月份的英文表示 var月=(“1”、“2”、“3”、“4”,“可能”,“6”,“7”,“8”,“9”,“10”,“11”,“12”);//初始化几个后面用到的数组 var date1str=" "; var date2str=" "; var datearr=[];//给日期加后缀的函数 函数friendlydate (str) { var str2num=数量(str); 开关(str2num) { 案例1: str2num +=笆ァ? 打破; 案例2: str2num +=昂汀? 打破; 案例3: str2num +=安煞谩? 打破; 默认值: str2num +=皌h”; } 返回str2num; }//date1的字符串表示大部分情况下都是需要年月日的.date2的如果不是在同年同月,大部分情况下都是需要月日的 date1str=月[date1 [1] 1] + " " + friendlydate (date1 [2]) +”、“+ date1 [0]; 如果(date1 [1]===date2[1],及date1 [0]===date2 [0]) { date2str=friendlydate (date2 [2]); 其他}{ date2str=月[date2 [1] 1] + " " + friendlydate (date2 [2]); }//如果大于一年,date2加上年份;如果小于一年,而且date1的日期是今年,那么去掉date1的年份。 如果((date2 [0] -date1[0]在1)| | ((date2 [0] -date1[0]===1),和(date2 [1] -date1[1]在0))| | ((date2 [0] -date1[0]===1),和(date2 [1] -date1[1]===0),和date2 [2] -date1[2]在=0)){ date2str +=薄ⅰ? date2 [0]; }else if (date1 [0]==yearnow) { date1str=date1str.slice (0, 6); }//把两个日期放在同一个数组里输出(如果是同年同月同日,代码里的date2str无用,所以代码是可以改善的)。 datearr [datearr.length]=date1str; 如果(date1.toString () !==date2.toString ()) { datearr [datearr.length]=date2str; } 返回datearr; }
特殊情况下,date2str是没用的,有空改善一下。
以上这篇浅谈js-FCC算法友好日期范围(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。