Date
ECMAScript中的Date类型是在早期Java中的java.util.Date类基础上构建的。为此,Date类型使用自UTC(国际协调时间)1970年1月1日午夜(零时)开始经过的毫秒数来保存日期。在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后的100 000 000 年。
创建
因为时间总是在变化,所以每次使用日期对象,都要使用new操作符和Date构造函数创建一个新的日期对象,也就是:
  • 默认参数
1 var now = new Date();
2 console.log(now);

火狐的结果:

谷歌的结果:
  • 传入一个字符参数(因为直接设置,没有涉及到计算,所以不会有从0开始的情况;没有设置的部分会清零;设置错误,显示意外的日期)
 1 var d1 = new Date("2018.08.08 20:08:08");
 2 var d2 = new Date("2018.08.08");
 3 var d3 = new Date("2018,08,08");
 4 var d4 = new Date("2018-08-08");
 5 var d5 = new Date("2018/08/08");
 6 var d6 = new Date("2018/13/08");      //看总结
 7
 8 console.log(d1);
 9 console.log(d2);
10 console.log(d3);
11 console.log(d4);
12 console.log(d5);
13 console.log(d6);

火狐的结果:

谷歌的结果:
  • 传入多个数值参数(涉及到计算,部分参数有从0开始的情况;没有设置的部分会清零;超出的部分会进1)
1 var d1 = new Date(2008,7,8,20,8,8);
2 var d2 = new Date(2008,12,8,20,8,8);
3 var d3 = new Date(2008,7,8);
4 var d4 = new Date(2008,7,355);       //看总结
5 console.log(d1);
6 console.log(d2);
7 console.log(d3);
8 console.log(d4);

火狐的结果:

谷歌的结果:
结合上面的这些例子,我们可得到以下几点:
1.每个浏览器支持的日期格式不同,显示日期的格式也不同。
2.传入一个字符参数的时候,最后一个月份写成十三月,程序会报错,这个符合常理
3.传入的是多个数值参数的时候,不再按常识来显示,而是有一套自己的规则,那就是月份和日期的取值从0开始,1月用0来表示,后面的依次提前一个位置,也就是12月为11,这个虽不符合常识,但很符合计算机的原理,之后会在获取日期的get系列中用实例来演示。
4.最后一个有点类似于之前传入一个字符参数的实例中,那个超出范围的例子,但在这里是行得通的,也就是写了超过范围的数值,会发生进位,比如:我写了13月,会进位到下一年的2月份。
5.火狐中日期在取值范围方面和月份有同样的规则,但谷歌没有。
获取(get系列)
var d = new Date();//  从日期对象获取信息
console.log(d);
console.log("年份:" , d.getFullYear());
console.log("月份" , d.getMonth());       //从0开始,0表示一月
console.log("日期" , d.getDate());
console.log("星期" , d.getDay());
console.log("------------------------------------------");
console.log("小时" , d.getHours());
console.log("分钟" , d.getMinutes());
console.log("秒钟" , d.getSeconds());
console.log("毫秒" , d.getMilliseconds());

console.log("时间戳" , d.getTime());        //获取从1970年1月1日至今的毫秒

设置(set系列)
除了获取日期,我们也可以设置日期,有两种方式。各参数中只有星期不能设置,会根据设置的其他参数自动获取,
1.简易模式,简单粗暴,但是会清零时分秒
1 var d = new Date("2008/8/8");
2 console.log(d);

2.复杂模式,每个部分都设置一遍,不设置的默认为当前时间的组成部分

var d = new Date();
d.setFullYear(2010);    //设置年
d.setMonth(6);          //设置月,超过11,累加年,0表示一月
d.setDate(27);          //设置日,超过最大日期,累加月,0表示一号
d.setHours(40);         //设置小时,超过24,累加天
d.setMinutes(40);       //设置分钟,超过60,累加小时
d.setSeconds(40);       //设置秒,超过60,累加分钟
d.setMilliseconds(40);  //设置毫秒,超过1000,累加秒
//d.setTime(10000);     //设置从1970年1月1日过去了多少毫秒,独立的设置日期的方式,相当于set系列其他的组合

console.log(d);          //返回更改后的年月日 时分秒// set系列不像get系列需要拿返回值,但是本身也有返回值
// 返回值是从1970年1月1号 0:0:0到当前设置的日期的毫秒数
console.log(d.getMilliseconds());

格式化
Date类型还有一些专门用于将日期格式化为字符串的方法,这些方法如下:
 1 var d = new Date();
 2 var d1 = d.toDateString();              //以特定于实现的格式显示星期几、月、日和年
 3 var d2 = d.toTimeString();              //以特定于实现的格式显示时、分、秒和时区
 4 var d3 = d.toLocaleDateString();        //以特定于地区的格式显示星期几、月、日和年
 5 var d4 = d.toLocaleTimeString();        //以特定于实现的格式显示时、分、秒
 6 var d5 = d.toLocaleTimeString();        //以特定于实现的格式显示完整的UTC日期
 7
 8 console.log(d);
 9 console.log(d1);
10 console.log(d2);
11 console.log(d3);
12 console.log(d4);
13 console.log(d5);

 总结

(1)获取日期时,获取整体日期,直接找创建的日期对象,获取日期中的某一部分,用get系列。

(2)设置日期时,设置整体日期,直接在创建的时候传参,设置日期中的某一部分,用set系列

转载于:https://www.cnblogs.com/AI-fisher/p/10770791.html

剑指前端(前端入门笔记系列)——Date对象相关推荐

  1. Henry前端笔记之 Date对象详解

    Henry前端笔记之 Date对象详解 Date 对象 1 时间格式简介 2 Date.now 与 new Date().getTime() 的区别 3 Date对象详解 普通函数的用法 构造函数的用 ...

  2. 每天成长一点---WEB前端学习入门笔记

    WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...

  3. 深度学习入门笔记系列 ( 二 )——基于 tensorflow 的一些深度学习基础知识

    本系列将分为 8 篇 .今天是第二篇 .主要讲讲 TensorFlow 框架的特点和此系列笔记中涉及到的入门概念 . 1.Tensor .Flow .Session .Graphs TensorFlo ...

  4. 【大数据入门笔记系列】第六节 分布式计算框架MapReduce的工作流程

    [大数据入门笔记系列]第六节 分布式计算框架MapReduce的工作流程 前言 MapReduce分布式运算 MapReduceApplication MapTask ReduceTask split ...

  5. 【大数据入门笔记系列】第一节 大数据常用组件

    [大数据入门笔记系列]第一节 大数据常用组件 大数据释义 大数据组件 跳转 大数据释义 近些年来,坊间一直流传着这样的言论:"大数据时代,人人都在裸奔".对于外行人来说,对于&qu ...

  6. 深度学习入门笔记系列(三)——感知器模型和 tensorboard 的使用方法

    本系列将分为 8 篇 .今天是第三篇 .主要讲讲感知器模型和 tensorboard 的基本使用方法 . 1. 感知器模型 因为小詹之前写过一篇感知器模型的介绍 ,这里就不赘述了 .有需要巩固的点击如 ...

  7. 【大数据入门笔记系列】第三节 Hdfs读、写数据处理流程

    [大数据入门笔记系列]第三节 Hdfs读.写数据处理流程 Hdfs简介 写数据处理流程 读数据处理流程 后记 跳转 Hdfs简介 一般而言,Hdfs是由一个NameNode节点和若干个DataNode ...

  8. Jetson Nano B01 从零入门笔记系列(一)基本组装与启动问题

    Jetson Nano B01 从零入门笔记系列(一)基本组装与启动问题 1.基本组件构成与补充 2.组装过程 3.TF卡刷机及启动教程要点 原专业离板子类型的东西差的比较远,参加个四轴避障比赛长点见 ...

  9. python入门笔记——类和对象⑤(继承)

    python入门笔记--类和对象⑤(继承) # python中展现面向对象的三大特征:封装.继承.多态 # 封装:把内容封装到某个地方以便后续的使用 # 对封装来说,其实就是使用初始化构造方法将内容封 ...

  10. 前端JS学习笔记——内置对象Math、Date 、Array、String

    目录 1.Math常用方法 2.Date()方法 如何获取Date的时间戳 Date()方法的使用 格式化日期时间 格式化输出一串时间日期 倒计时功能 3.Array方法 创建数组对象的两种方法 检测 ...

最新文章

  1. UIImageView 与 UIButton的区别
  2. 人脸识别引爆下一代生物支付四军之战
  3. MariaDB10和MySQL5.6社区版压力测试
  4. for循环一定要指定键么 vue_vue的for循环使用方法
  5. SpringBoot测试失败并报错: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration
  6. ojdbc14_g.jar与ojdbc14.jar区别
  7. jzoj3736. 【NOI2014模拟7.11】数学题
  8. vf更改当前路径_这份 window.location 备忘单,让你更有条理解决地址路径问题!...
  9. nginx中配置虚拟主机
  10. SVN快速上手使用(适用于新入职同事)
  11. 淘宝天猫返利查券机器人搭建
  12. 【SCI】【计算机视觉】【图像处理】一二三四区期刊推荐(自用版本)
  13. linux打开chm文件,安装kchmviewer,在linux下查看chm文件
  14. Markdown如何修改上传图片的大小
  15. Quartus II IP生成报错
  16. 第四章、Tibbo Basic
  17. HTML小白起步(一、闲聊篇)
  18. Linux 系统调用的本质
  19. Fiddler简单的使用教程(入门级)
  20. 如何辨别上市公司财务造假

热门文章

  1. 解决:android源码同步repo sync 时出现的fatal:duplicate path错误
  2. 【FIR.im赞助】jQuery编程挑战#012:生成菜单添加和删除动画效果
  3. Oracle Library cache 内部机制 说明
  4. Maven—Eclipse设置Maven项目JDK版本
  5. SqlServer2005海量数据存储过程分页(上)
  6. 快速启动器工具 Maye(转载)
  7. mysql必知必会的数据_MySQL必知必会---数据过滤
  8. intellij怎么找实现_学习播音主持配音之后,自己该怎么利用自己所学实现变现呢?...
  9. 用最简单的例子告诉你kafka是怎么用的
  10. 管理计算机中的应用SQL,计算机数据库系统在信息管理中的应用