【JavaScript 零基础入门】内置对象(二)------ Date 对象
接下来说明 JS 第二类常见的内置对象 —— Date 对象
Date 对象和 Math 对象不同,Math 对象不是构造函数,可以直接使用,而 Date 对象是一个构造函数,所以我们必须经过对象实例化,即 new 过之后才可以使用,Date 对象多用于处理开发中的时间和日期方面的问题。
文章目录:
Date 对象实例化:
var date=new Date();
Date 对象实例化时可以有参数也可以没有参数,没有参数输出的就是当前系统当时的的标准时间,有参数的话我们可以输出想要展现的时间
一:无参数的实例化
没有参数实例化后会展现出当前系统当时的时间和日期
var date=new Date(); //没有参数
console.log(date); //会输出当前时间
二:有参数的实例化
有参数的实例化分为两种,分别是 数字型 和 字符串型 ,以下分别对两种类型举例说明
2.1 数字型参数的实例化
var date=new Date(2021,1,18); //数字型参数
console.log(date);
可以看到我们输入的参数是1月,但输出的结果是Feb(2月),数字型的输出会比我们输入的月份大一个月。
2.2 字符串型参数的实例化:
var date=new Date('2021-1-18 12:56:00'); //字符串型参数
console.log(date);
参数是1月,输出端的结果也是1月,因此利用字符串型参数要比数字型更多一些。
三:格式化年月日
我们已经知道Math对象有很多属性和方法可以直接使用,Date对象也一样,实例化过后也可以使用很多方法,比较常用的有三种格式化年月日的方法
- getFullYear() 输出当前年份
- getMonth() 输出当前月份 (应注意输出的月份比实际月份小1,输出真实月份应该加1)
- getDate() 输出当前几号
- getDay() 输出当前周几 (周一到周天分别对应数字:1 2 3 4 5 6 0)
var Date=new Date();
console.log(Date.getFullYear()); //输出当前年份
console.log(Date.getMonth() + 1); //输出结果为当前月份的前一月,要手动加1才能返回当前月份
console.log(Date.getDate()); //输出当前几号
console.log(Date.getDay()); //输出当前周几
如果想要输出效果为 2021年1月18日 星期二 ,以下操作即可
(因为星期几只能返回一个数字,但是根据习惯我们想要返回的是‘星期几’,所以我们把返回的数字当做一个索引,把星期天到星期六放到一个数组中,因为星期天返回的是0,所以把星期天放在数组的第一个位置,正好对应0索引)
var arr=['星期天','星期一','星期二','星期三','星期四','星期五','星期六'];
var Date=new Date();
var year=Date.getFullYear();
var month=Date.getMonth() + 1;
var date=Date.getDate();
var day=Date.getDay();
console.log(year + '年' + month + '月' + date + '日' + arr[day]);
四:格式化时分秒
与上面格式化年月日使用方法类似
- getHours() 输出当前小时
- getMinutes() 输出当前分钟
- getSeconds() 输出当前秒
var Date=new Date();
console.log(Date.getHours()); //输出当前小时
console.log(Date.getMinutes()); //输出当前分钟
console.log(Date.getSeconds()); //输出当前秒
输出连续格式时分秒:
将其封装在了函数内,并利用三元运算符将不足10的数字补0,符合平常看时间的习惯
function time()
{
var time=new Date();
var h=time.getHours();
h = h<10 ? '0'+h : h;
var m=time.getMinutes();
m = m<10 ? '0'+m : m;
var s=time.getSeconds();
s = s<10 ? '0'+s : s;
return h+'时'+m+'分'+s+'秒';
}
console.log(time());
五:获取当前时间总毫秒数(时间戳)
这里所说的总毫秒数是指当前时间距离1970年1月1日的总毫秒数,共有四种方法可以表示
- valueOf()
- getTime()
var date=new Date();
console.log(date.valueOf());
console.log(date.getTime());
或者使用另外一种简便写法 var date=+new Date();返回的就是总毫秒数
var date=+new Date();
console.log(date);
以及H5新增加的一种方法,这个方法不需要实例化对象即可获得,更为简便
console.log(Date.now());
六:倒计时案例(重点)
在日常开发中很多地方都会用的到倒计时,例如淘宝,京东的双十一秒杀倒计时等,我们如何也写出一个倒计时效果呢,我们首先会想到刚才学到的获取当前时间,再减去我们设置好的时间即可,但是我们获取到的标准时间很可能会出现减去之后是负数的情况(例如02-12)这怎么办呢?于是我们的时间戳便有利用价值了,时间戳即刚才讲到过的总毫秒数,这个时间是永远不会重复的,对此我们可以使用设置好的总毫秒数减去当前的总毫秒数,在进行一系列单位换算,就可以得到一个简单的倒计时案例了,首先我们需要熟练记清楚单位换算之间的关系:
- 1秒=1000毫秒
- 天数=秒数/60/60/24
- 小时数=秒数/60/60%24
- 分钟数=秒数/60%60
- 秒数=秒数%60
对于无法整除的秒数,我们利用 parseInt() 方法取整即可,有了这样一个换算关系,我们就可以轻松地完成这个倒计时案例了
function count(time)
{
var nowtime=+new Date(); //得到当前时间
var aimtime=+new Date(time); //得到目标时间(结束时间)
var times=(aimtime-nowtime)/1000; //得到倒计时时间差(毫秒) 除1000得到秒
var d=parseInt(times/60/60/24) //得到倒计时天数
d=d<10?'0'+d:d; //将不足10的时间补0
var h=parseInt(times/60/60%24) //得到倒计时小时数
h=h<10?'0'+h:h; //将不足10的时间补0
var m=parseInt(times/60%60) //得到倒计时分钟数
m=m<10?'0'+m:m; //将不足10的时间补0
var s=parseInt(times%60) //得到倒计时秒数
s=s<10?'0'+s:s; //将不足10的时间补0
return d + '天' + h + '时' + m + '分' + s +'秒'; //返回倒计时
}
alert('倒计时还剩下' + count('2022-1-18 16:30:00')); //调用并输入目标的结束时间
有问题请指出,感谢!!
相关文章
- JavaScript动画实例:递归分形图动态展示
- JavaScript apply
- 【学习笔记59】JavaScript原型的理解
- 26dwr - DWR中的JavaScript(创造一个与 Java 对象匹配的 Javascript 对象)
- 前端基础 - JavaScript高级应用(灵活的对象模型)
- 前端基础 - JavaScript定时器
- 【JavaScript 零基础入门】内置对象 (一) ------ Math对象
- 【JavaScript 零基础入门】内置对象(三)------ Array 对象
- 【JavaScript】关于javascript原型的深入理解
- 【JavaScript】javascript常用的东西
- 长篇总结之JavaScript,巩固前端基础
- JavaScript基础-第2章
- Javascript 笔记与总结(2-16)事件对象
- Idea的js文件报错:Import declarations are not supported by current JavaScript version
- 《JavaScript入门经典(第6版)》——第1章 JavaScript简介 1.1 Web脚本编程基础
- 《网页设计与前端开发 Dreamweaver+Flash+Photoshop+HTML+CSS+JavaScript 从入门到精通》——第2章 HTML基础 2.1 HTML的基本概念
- 《JavaScript开发框架权威指南》——1.2 配置Bower
- 《HTML CSS JavaScript 网页制作从入门到精通 第3版》—— 第01章 HTML基础
- TypeScript 与 JavaScript 的区别(TypeScript万字基础入门,了解TS,看这一篇就够了)
- 【Vue】vue基础语法——computed计算、watch监听、class和style,最后回顾JavaScript里面的常用方法(vue学习day03)
- JavaScript基础知识点——函数
- 【零基础学JS -5 】Javascript中的字符串
- 【一天时间|JavaScript基础】异步
- 华为OD机试 - 报数(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
- javascript基础篇--function类型(上)
- JavaScript删除URL指定的参数和值
- 百度地图 获取当前位置 添加标记物等基础使用 JavaScript API
- 用JavaScript实现网红太空人表盘(绝对详细、绝对原创),附源码下载
- 【Javascript】节流和防抖函数及防止用户重复提交