背景:已知两个时间之间的差距,判断在4个时间范围内的哪一个,然后返回对应的颜色。即,已知时间差,求对应的返回值。
四个时间范围是:1年内、1~2年、2~3年、3年以上
时间差是大于等于一个minValue且小于等于一个maxValue。
核心代码:
因为switch等于true,即当case的语句返回值也是true,才会执行对应的语句。
getFormatColor: function (currentTime,parentTime) { //计算时间差 var color='' var minVal=0 var maxVal=0 var a = moment(parentTime); var b = moment(currentTime); var timeDiff = a.diff(b, 'years', true); // 1.75 switch (true) { case _.inRange(timeDiff, 0, 1): color = "rgba(1,255,1,.7)" minVal = 0 maxVal = 1 break; case _.inRange(timeDiff, 1, 2): color = "rgba(255,255,0,.7)" minVal = 1 maxVal = 2 break; case _.inRange(timeDiff, 2, 3): color = "rgba(255,192,0,.7)" minVal = 2 maxVal = 3 break; case _.inRange(timeDiff, 3, 100): color = "rgba(214,20,21,.7)" minVal = 3 maxVal = 100 break; default: color = 'pink' break; } return {color,minVal,maxVal} },
调用方法:
var currentTime = ''//日期格式一致 var parentTime = '2014-05-18 09:10:12' //不变的日期时间,即参照物 var color = MAPutils.getFormatColor(currentTime,parentTime).color;
写到这儿就结束了,下面是大于等于且小于等于一个数值的另一种写法:
switch (true) { case timeDiff >= 0 && timeDiff < 1: color = "rgba(1,255,1,.7)" minVal = 0 maxVal = 1 break; case timeDiff >= 1 && timeDiff < 2: color = "rgba(255,255,0,.7)" minVal = 1 maxVal = 2 break; case timeDiff >= 2 && timeDiff < 3: color = "rgba(255,192,0,.7)" minVal = 2 maxVal = 3 break; case timeDiff >= 3 && timeDiff < 100: color = "rgba(214,20,21,.7)" minVal = 3 maxVal = 100 break; default: color = 'pink' break; }
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/474.html