关于JS的Date对象的探究
一次代码审核,其中刚好遇见了一些知识点记录顺带整理一下吧
- date对象是javascript语言中内置的数据类型,用于提供日期和时间的操作接口。
- Date类型使用自UTC1970年1月1日0点开始经过的毫秒数来保存日期,它可以表示的时间范围是1970年1月1日0点前后的各1亿天。
概念性的东西请移步这个博主的文章,写的真好!
https://www.cnblogs.com/xiaohuochai/p/5663102.html
https://www.cnblogs.com/xiaohuochai/p/5663102.html
https://www.cnblogs.com/xiaohuochai/p/5663102.html
下面让我们来看一些函数实例
- 每个Object对象都有 toLocaleString/toString/valueOf 这些方法。
- 像其他对象一样,Date继承了Object并重写了这些方法。
由于 Date.valueOf 直接返回的是是日期的毫秒表示,所以我们可以通过
+new Date()
获取
我们我们最好是用 Date.now(ES5新增方法) 而不是 Date.parse
const pre1 = Date.parse(new Date()); // 1517828782000 - 丢失了毫秒的信息
const pre2 = Date.now(new Date()); // 1517828814628
const pre3 = (+ new Date()); // 1517828814628
console.log(pre1, pre2, pre3);
要注意客户端时间和服务端时间的区别(精确的时间还是需要 后端 来做的)
const a = new Date();
这里的 a 最后的值是客户端的时间(注意,不是联网后的当天时间!!!!!!)
我一直蠢蠢地以为这会是 正确的时间。
它将会是本地客户端的时间。意即是说,若我脑残地把自己手机或者电脑时间改了,他就!!!!
关于时间函数的一些深入理解
此版块内容(copy至)源自:想看更多点我
Date对象属性描述(Object这一对象都有的东西)
- constructor:返回创建此对象的Date函数的引用,可用于判断是否是 Date 对象
const test = new Date();
if (test.constructor === Array) {
console.log("test is Array");
};
if (test.constructor === Date) {
console.log("test is Date");
} // 最后打出 test is Date
Object.prototype.toString.call(new Date()) === '[object Date]' // true
- prototype:使我们有能力向对象添加属性和方法
Date.prototype.show = function() {
console.log(this);
}
const a = new Date();
a.show();
需要注意的是这里不要乱用箭头函数哦。箭头函数的this。
Date对象的常用方法摘抄
const now = new Date()
- getYear 注:ES3 之后此方法已经被 弃用
- getDay 获取当前星期X (0-6, 0 代表星期天)
- getFullYear 获取当前年份(4位, 1970-????)
- getMonth 获取当前月份(0-11,0 代表1月)
- getDate 获取当前日(1-31)
- getHours 获取当前小时数(0-23)
- getMinutes 获取当前分钟数(0-59)
- getSeconds 获取当前秒数(0-59)
const a = new Date();
const o = (date) => {
return {
"noYear": date.getYear(), // 118
"year": date.getFullYear(), // 2018
"month": date.getMonth(), // 0(1月)
"date": date.getDate(), // 31
"hour": date.getHours(), // 20
"minutes": date.getMinutes(), // 18
"seconds": date.getSeconds() // 9
}
}
console.log(o(a));
关于一些时间的应用场景
- 1.判断闰年
const isLeapYear = (...needles) => {
for (const obj of needles) {
if ((obj % 4 === 0 && obj % 100 !==0) || obj % 400 === 0) {
console.log(obj + "是闰年");
continue;
}
console.log(obj + "不是闰年");
}
}
isLeapYear(2004, 2000, 500);
complete.
关于JS的Date对象的探究的更多相关文章
- JavaScript基础17——js的Date对象
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JS的Date对象、Math、包装类
Date对象 在JS使用Date对象来表示时间 当前时间 var d = new Date(); 指定时间 格式:月/日/年 时:分:秒 var e = new Date("02/16/ ...
- js实现小时钟,js中Date对象的使用?
介绍一下js中Date对象的使用 dateObj = new Date() dateObj = new Date(dateValue) dateObj = new Date(year,month,da ...
- JS高级面试题思路(装箱和拆箱、栈和堆、js中sort()方法、.js中Date对象中的getMounth() 需要注意的、开发中编码和解码使用场景有哪些)
1.装箱和拆箱: 装箱:把基本数据类型转化为对应的引用数据类型的操作: var num = 123 // num var objNum = new Num(123) // object console ...
- JS中Date对象getYear()方法和getFullYear()方法区别
释义 JavaScript getFullYear() 方法 getFullYear() 方法可返回一个表示年份的 4 位数字. getYear() 语法 dateObject.getFullYear ...
- JS 的Date对象
原文 http://www.cnblogs.com/towerking/p/3220410.html 一.获取Date对象 在JS中我们可以通过下面一段代码获取本地时间 var currentDate ...
- javascript得知 - js的Date对象函数
js的Date功能很强大.通常使用. 首先获得当前的日期: var CurDate = new Date(); var Year = CurDate.getFullYear(); //年份(四位 例: ...
- js日期date对象
js日期 日期对象的一些属性和方法 var date = new Date() date.toString() // "Tue Jan 29 2019 22:58:13 GMT+0800 ( ...
- js中Date()对象详解
var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-???? ...
随机推荐
- Ffmpeg转码研究一
Ffmpeg是一款功能强大的视频处理工具,那么转码肯定不是问题的,因为项目的需求,对转码进行了研究.刚开始首先去看了ffmpeg源代码中的一个例子transcode.c,但是发现该例子更应该称之为re ...
- 系列文章--Node.js学习笔记系列
Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学 ...
- 数据结构-二叉搜索树的js实现
一.树的相关概念 1.基本概念 子树 一个子树由一个节点和它的后代构成. 节点的度 节点所拥有的子树的个数. 树的度 树中各节点度的最大值 节点的深度 节点的深度等于祖先节点的数量 树的高度 树的高度 ...
- Less:Less(CSS预处理语言)
ylbtech-Less:Less(CSS预处理语言) Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题 ...
- Python-编写一个mysql注入漏洞检测工具
判断mysql网站是否存在注入漏洞的几个方法: 注入点后加上一个单引号会报错 and 1=1返回正常页面,and 1=2返回的页面不同于正常页面 and sleep(3) 网页会等待3秒左右 根据返回 ...
- Spirng+In+Action(Craig Walls Ryan Breidenbach)
目录 1.开始Spring之旅(简介) 2.装配Bean(IoC) 3.创建切面(AOP) ... 第一章:开始Spring之旅 1.1 为什么使用Spring:简化了企业级系统开发. 1.1.1 j ...
- service的生命周期以及两种service的差异
可以看到,两种service的生命周期都相对简单,有一点不同的是,Intentservice每次调用的时候都执行onstartcommand,而boundservice一旦启动了之后,就不会每次执行o ...
- css中的定位属性position(转)
css中的定位属性position 同样的也是上课的时候发现学生难以理解的一些问题拿出来记录一下,希望帮助初学者. 在css中定位属性position的运用在页面中是很常用的,特别是一些结合js来 ...
- Windows上python + selenium + Firefox浏览器的环境配置
1.python安装 我的电脑是32位的,安装了Python 3.5.4版本其它安装版本 2.python环境变量配置 将”C:\Program Files\Python35",”C:\Pr ...
- CodeForces 492A Vanya and Cubes
A. Vanya and Cubes time limit per test 1 second memory limit per test 256 megabytes input standard i ...