通过实例解析javascript Date对象属性及方法


Posted in Javascript onNovember 04, 2020

日常生活中,各种形式的时间字符到处都是。时间观念的产生,时间单位、计时工具的发明,给人类带来的变化实在一言难尽。今天就来谈谈日期那些事儿。一起来看看 JavaScript 中的日期对象 Date。

获取月份天数

// 获取月份天数
function getMonthDayCount(year, month) {
 return new Date(year, month, 0).getDate();
}
console.log(getMonthDayCount(2017, 10)); // 31

Date 第三个参数的本质跟 setDate 是一样的。

因为 date 为 0 时自动退到上个月的最后一天,所以这里月份也不需要减,正好的。

获取所有月份天数

function getAllMonthDayCount(year) {
 var days = [31, new Date(year, 2, 0).getDate(), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
 return days;
}
console.log(getAllMonthDayCount(2016));// [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

这个算是上面的延伸,不多解释。

是否是闰年

function isLeapYear(year) {
 return (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0);
}

这是网上的web前端开发里相关代码,相信大多数人都用。但其实你真的理解或者能记住么?光是html和css就足够多记的了

function isLeapYear(year) {
 return new Date(year, 2, 0).getDate() === 29;
}
console.log([
 isLeapYear(2000),
 isLeapYear(2016),
 isLeapYear(2017),
 isLeapYear(2018)
]); // [ true, true, false, false ]

这样看,是不是就非常简单容易理解了。

而且都不需要记,是不是想忘都忘不了?

天数加减操作

之前看到有人用相对秒数在计算几天前或几天后,甚至还在算跨月,跨年的情况。

其实直接 setDate 就好了,自动处理 跨月,跨年 的情况。

// 10天后是几月几号
var dt = new Date('2016-12-25');
dt.setDate(dt.getDate() + 10);
console.log(dt.toLocaleDateString()); // 2017/1/4

// 10天前是几月几号
var dt = new Date('2017-01-04');
dt.setDate(dt.getDate() - 10);
console.log(dt.toLocaleDateString()); // 2016/12/25

下面我将JavaScript Date 对象的对象和方法总结成一个表,让大家参考,也可以关注javascript参考手册。

Date 对象属性

属性 描述
constructor 返回对创建此对象的 Date 函数的引用。
prototype 使您有能力向对象添加属性和方法。

Date 对象方法

方法 描述
Date() 返回当日的日期和时间。
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth() 从 Date 对象返回月份 (0 ~ 11)。
getFullYear() 从 Date 对象以四位数字返回年份。
getYear() 请使用 getFullYear() 方法代替。
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
etMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth() 设置 Date 对象中月份 (0 ~ 11)。
setFullYear() 设置 Date 对象中的年份(四位数字)。
setYear() 请使用 setFullYear() 方法代替。
setHours() 设置 Date 对象中的小时 (0 ~ 23)。
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
setTime() 以毫秒设置 Date 对象。
setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
toSource() 返回该对象的源代码。
toString() 把 Date 对象转换为字符串。
toTimeString() 把 Date 对象的时间部分转换为字符串。
toDateString() 把 Date 对象的日期部分转换为字符串。
toGMTString() 请使用 toUTCString() 方法代替。
toUTCString() 根据世界时,把 Date 对象转换为字符串。
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。
UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
valueOf() 返回 Date 对象的原始值。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 基于原型的对象(创建、调用)
Oct 16 Javascript
JQuery live函数
Dec 24 Javascript
js中字符替换函数String.replace()使用技巧
Aug 14 Javascript
重构Javascript代码示例(重构前后对比)
Jan 23 Javascript
同时使用n个window onload加载实例介绍
Apr 25 Javascript
js实现a标签超链接提交form表单的方法
Jun 24 Javascript
js判断日期时间有效性的方法
Oct 24 Javascript
深入理解Angular4中的依赖注入
Jun 07 Javascript
ReactNative页面跳转Navigator实现的示例代码
Aug 02 Javascript
浅析JS抽象工厂模式
Dec 14 Javascript
JavaScript switch语句使用方法简介
Dec 30 Javascript
JS sort排序详细使用方法示例解析
Sep 27 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
Nov 03 #Javascript
解决vant-UI库修改样式无效的问题
Nov 03 #Javascript
解决vant title-active-color与title-inactive-color不生效问题
Nov 03 #Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
Nov 03 #Javascript
JavaScript语法约定和程序调试原理解析
Nov 03 #Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
Nov 03 #Javascript
React Native登录之指纹登录篇的示例代码
Nov 03 #Javascript
You might like
如何冲泡挂耳包咖啡?技巧是什么
2021/03/04 冲泡冲煮
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
PHP扩展Swoole实现实时异步任务队列示例
2019/04/13 PHP
学习YUI.Ext第五日--做拖放Darg&Drop
2007/03/10 Javascript
JQuery实现自定义对话框的代码
2008/06/15 Javascript
js替换字符串的所有示例代码
2013/07/23 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
node.js中的fs.readFile方法使用说明
2014/12/15 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
2019/03/28 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
实例说明Python中比较运算符的使用
2015/05/13 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
wxPython的安装与使用教程
2018/08/31 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
python openpyxl使用方法详解
2019/07/18 Python
django迁移数据库错误问题解决
2019/07/29 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
土建专业毕业生自荐书
2014/07/04 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js
Python测试框架pytest高阶用法全面详解
2022/06/01 Python