js中时间大小的比较
今天在前台做到一个需要比较两个日期大小的地方,乍一看,发现一个比较奇怪地地方:
var t1 = new Date(2018,1,1), t2 = new Date(2018,1,1);
console.log(t1);
console.log(t2);
console.log('t1>t2:'+(t1>t2));
console.log('t1==t2:'+(t1==t2));
console.log('t1<t2:'+(t1<t2));
console.log('t1>=t2:'+(t1>=t2));
console.log('t1<=t2:'+(t1<=t2));
// 输出结果
Thu Feb 01 2018 00:00:00 GMT+0800 (中国标准时间)
Thu Feb 01 2018 00:00:00 GMT+0800 (中国标准时间)
t1>t2:falset1==t2:falset1<t2:falset1>=t2:truet1<=t2:true
虽然我生命了两个相同值的时间变量,但是在比较大小的时候大小关系和想象中出入很大。接下来再来做一个试验:
var o1 = new Object(), o2 = new Object();
console.log(o1);
console.log(o2);
console.log('o1>o2:'+(o1>o2));
console.log('o1==o2:'+(o1==o2));
console.log('o1<o2:'+(o1<o2));
console.log('o1>=o2:'+(o1>=o2));
console.log('o1<=o2:'+(o1<=o2));
// 输出结果
{}
{}
o1>o2:false
o1==o2:false
o1<o2:false
o1>=o2:true
o1<=o2:true
通过对比,可以发现两种方式得出的结果非常的相似。因为在JavaScript中,datetime的类型是Object。在比较的时候,比较的不是值,而是地址,使用==和===来比较Object往往不符合预期,除非他们是来自于同一个Object,比较datetime可以先转化为String或int。
+t1 == +t2 // true
js中时间大小的比较的更多相关文章
- js 中时间格式化的几种方法
1.项目中时间返回值,很过时候为毫秒值,我们需要转换成 能够看懂的时间的格式: 例如: yyyy-MM-dd HH:mm:ss 2.处理方法(处理方法有多种,可以传值到前端处理,也可以后台可以好之后再 ...
- js 日期时间大小比较
<body> 开始时间:<input onfocus="setday(this)" id="startTime" name="sta ...
- js 判断时间大小
//判断结束时间一定要大于开始时间 function comparativeTime(){ var isok=true; //早餐配送时间 var breakfastScanTimeMin = $(& ...
- 关于IE11版本下JS中时间判断的问题
最近在做代码的优化及浏览器的兼容问题.遇到了谷歌.火狐.360兼容模式.IE(8以上)版本对时间判断大小的问题 . 在谷歌.火狐.360.IE11以下IE8以上版本下 var d1="201 ...
- js中时间的操作
var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份(4位,1 ...
- js中时间的处理
转自 : http://blog.csdn.net/xichenguan/article/details/45512541 //将格林时间转换成字符串格式的,用于显示带页面 time : 格林时间 v ...
- js比较时间大小(时间为以-分割的字符串时)
function dateCompare(startdate, enddate) { var arr = startdate.split("-"); var start ...
- 关于jquery-weui.js中时间控件datetimepicker的使用
今天第一次接触jquery-weui,不太了解用法,然而官方文档写的也很简略,只好打开源代码进行研究,我想要的是设置开始日期大于当前日期,然后在源码中发现有min这个默认为undefined的属性,于 ...
- js前端验证时间大小
replace(/\-/g, "\/")是根据验证表达式把日期转化成长日期格式 function checkStartTimeAndEndTime(startTime, endTi ...
随机推荐
- POJ3580 SuperMemo splay伸展树,区间操作
题意:实现一种数据结构,支持对一个数列的 6 种操作:第 x 个数到第 y 个数之间的数每个加 D:第 x 个数到第 y 个数之间全部数翻转:第 x 个数到第 y 个数之间的数,向后循环流动 c 次, ...
- Mudo C++网络库第五章学习笔记
高效的多线程日志 日志(logging)有两个意思: 诊断日志(diagnostic log), 常用日志库提供日志功能; 交易日志(transaction log), 用于记录状态变更, 通过回放日 ...
- 使用vue-cli初始化vue项目
在项目中使用vue我使用vue-cli脚手架搭建项目 1.先安装nodejs 2.使用npm install -g vue-cli (建议在使用这步前先安装nrm来切换npm的源利器,使得下载资源更快 ...
- linux /proc目录
1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构.改变内核设置的机制.proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文 ...
- js用replaceAll全部替换的方法
1 前言 js中字符串整体替换,只有自带的replace,并没有replaceAll,如果我们需要把字符串中的字符统一替换,可以用正则表达式,由于经常使用就在String直接加个原生方法,方便调用. ...
- swift 学习- 17 -- 析构器
// 析构器 只适用与 类类型, 当一个类的实例被释放之前, 析构器会被立即调用, 析构器用关键字 deinit 来标示, 类似于构造器要用 init 来标示 // 析构过程原理 // Swift 会 ...
- python魔法函数之__getattr__与__getattribute__
getattr 在访问对象的属性不存在时,调用__getattr__,如果没有定义该魔法函数会报错 class Test: def __init__(self, name, age): self.na ...
- Android UiAutomator2.0
一.环境搭建 JDK(java环境).SDK(adb appt环境),这两个已经不想再叙述了直接看详见--> android studio 安装,下载地址:https://developer.a ...
- python用unittest+HTMLTestRunner的框架测试并生成测试报告
直接贴代码: import unittestfrom selenium import webdriverfrom time import sleepimport osimport time # 定义打 ...
- ionic3 git 提交报错
npm ERR! cordova-plugin-camera@ gen-docs: `jsdoc2md --template "jsdoc2md/TEMPLATE.md" &quo ...