js时间戳转化,js时间判断大小,设置时间等等一些零碎问题
js获取时间比较大小
其实在一些后台系统页面中经常需要到筛选时间段来进行查询这个时候就需要到比较时间的大小,不能让结束时间小于开始时间,开始时间大于结束时间。所以直接上图:
方法一:
可以直接进行比较
方法二:
也可以转化为毫秒来比较
方法三:
这个方法或许是经常用到场景
方法四:
如果后台返回的是一个时间戳的话,是可以直接进行比较的,因为就是一串字符数字比如:
1548223530717 ,,,, 1548223504080 这就是可以直接比较的
分割线············································································讲一下其它时间的应用
理解一下时间戳:
从上面可以看出来,如果从后台直接返回来的时间戳是直接可以通过new Data(1548224098653)来显示时间。
当然后台返回的时间有时有不用的,数据库里面记录的是10位数的时间戳,所以这个时候我们应该知道,正常的时间戳是13位,时间戳是按毫秒来计量的,1s =1000ms ,所以返回10位也不要慌。
所以需要在返回的10位时间戳补上三个0 就可以,1548224098 000然后就 new Date(1548224098000) 即可
时间还有一堆骚操作,再简单介绍一些业务常用的时间设置
比如 eg:
查询一个星期的时间
往前一个星期也差不多
其实同理 你要查月的也一样
用好属性方法就可以:
一个set , 一个get
对于讲时间格式化的问题
方法一:
方法二:
下面就可以得到 不满10 的 月份 前面补0显示
其实上面的可以写成一个方法
如果要加时分秒的话 ,这里就考考你自己了可以在方法里面做一下24h的判断,或者时分秒的方法也是一样的。
同时你的是10位数的时间戳 就补0 就好了
format(1548228308000)
或者是你在方法里面判断
function format(t){
if((t+"").length<10){ //(null +"").length==>4 (undefined +"").length==>9 都可以排除了
return false
}
if( (t+"").length==10){
t +"000"
}
var s = new Date(t);
s = s.getFullYear() +"-"+ (s.getMonth()>8?(s.getMonth()+1):"0"+(s.getMonth()+1)) +"-"+ s.getDate() +" "+(s.toTimeString()).substring(0,8)
return s
}