记一次js 时间排序的挖坑路上

原创 舞林 随笔 js学习 301阅读 2017-06-09 15:20:56 举报

由于项目需要对指派人员空闲状态下按时间进行排序,此需对时间进行比较大小。
最初很简单的把两个时间new Date()格式化后相减来比较:
javascript 代码

在谷歌上测试没问题,就更新上线了。
直到大半个月后,老板发现他苹果电脑上的排序不行,然后去看ie,火狐上的效果,发现这个两个的也不行,alert出来的NaN,alert(new Date(time)),显示的结果是Invalid Date。错误原因很明显是:参数格式不规范,不能兼容所有浏览器。但是开始没有往这方向去解决,想到的方向的转时间戳后再相减,挖大了这个坑。由于格式不兼容,ie,火狐上还是不行。然后阿林跟我说格式错误,才意识到方向的错误,因为一直都有一个这样的意识:各个浏览器对js有关的都是兼容的。
修改为‘YYY/MM/DD hh:mm:ss’格式即可。let t = new Date(string.replace(/-/g,'/'))
所以,不同的浏览器还是存在差异的,以下列出了所有浏览器都支持的方式:
javascript 代码

ps:new Date(str)构造了一个日期,参数str至少要提供年月日三部分,也就是形如“2017/06/08”的字符串,不能是"2017/06",否则将得到一个NaN。同时你还可以传入小时、分钟和秒数,但不能只传入小时,比如“2017/06/08 17”,这样的参数同样会得到一个NaN。参数可以是“2017/06/08 17:20”或者“2017/06/08 17:20:05”,这样都可以得到正确的时间,其中如果秒数没给出,则默认为0。

也记录下几个转时间戳的方法:
javascript 代码

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复