摘要:传入的格式要求详见日期格式打印结果作为构造函数作为构造函数可以通过指针实例化一个的实例对象,这个对象是一个日期对象。所有实例的属性和方法即是继承于构造函数原型上的属性和方法。
前言
之前写博客都是在github的搭建的个人博客上,最近开始迁移博客上的内容到segmentfalut。一方面是想重新整理下写过的博客。另一方面也是想与大家多多交流,找到现阶段自己的不足。第一篇文章是关于Date对象,这篇博客是关于Date对象的一些定义和一些常用方法的使用。Date对象 1. 作为Date对象 1-1 用法
作为普通对象可以直接作为函数调用,返回当前标准时间格式的字符串。
传参和不传参返回结果一致。
Date(); //打印结果 "Wed Dec 05 2018 19:43:52 GMT+0800 (中国标准时间)"1-2 Date对象方法
Date.now()
返回当前时间的时间戳,不接受传参。
Date.now(); //打印结果 1544063816980
Date.parse()
传入解析日期字符串返回时间戳,如果解析失败,返回NaN。(传入的格式要求详见parse日期格式)
Date.parse("2018-09-09 01:02:03"); //打印结果 15364261230002. 作为Date()构造函数
1.作为构造函数可以通过new指针实例化一个Date的实例对象,这个对象是一个日期对象。
2.注意:new Date()接受传参,传参格式与上文提到的parse()方法传参格式一致,但返回的数据时标准时间格式对象。
let date = new Date(); // Thu Dec 06 2018 09:29:58 GMT+0800 (中国标准时间)2-1 实例方法
从上图可以看出所有的Date实例都继承自Date.prototype。所有实例的属性和方法即是继承于Date构造函数原型上的属性和方法。这些方法大致分为Getter,Setter,Conversion getter几类。我主要是对Getter类的几种方法进行分析。更多Date的原型方法可见Date对象实例方法
方法 | 描述 |
---|---|
getDate() | 返回一个月中的某一天(1 ~ 31) |
getDay() | 返回一周中的某一天(0 ~ 6),星期日为0,星期一为1 |
getMonth() | 返回月份(0 ~ 11) |
getFullYear() | 以四位数字返回年份 |
getHours() | 返回小时(0 ~ 23) |
getMinutes() | 返回分钟(0 ~ 59) |
getSeconds() | 返回秒数(0 ~ 59) |
getTime() | 返回时间戳 |
通过上面表格的方法,我们可以对页面上的日期进行转换来与后台进行交互。2-2 日期转换方法
指定时间戳转化成日期或者时间,可指定分割符和转换类型。
function unixStandardDate(dates = Date.now(), separatorStr = "-", unixType = "date") { //把时间戳转化成Date对象 let date = new Date(dates); //获取年月日 let year = date.getFullYear(); let month = date.getMonth() + 1; month = month < 10 ? ("0" + month) : month; let day = date.getDate(); day = day < 10 ? ("0" + day) : day; //返回的年月日 let resultDate = year + separatorStr + month + separatorStr + day; //获取时间 let hours = date.getHours(); hours = hours < 10 ? ("0" + hours) : hours; let minutes = date.getMinutes(); minutes = minutes < 10 ? ("0" + minutes) : minutes; let seconds = date.getSeconds(); seconds = seconds < 10 ? ("0" + seconds) : seconds; let resultTime = hours + ":" + minutes + ":" + seconds //判断是转换日期还是转换时间 if (unixType === "date") { return resultDate; } else if (unixType === "time") { return resultDate + " " + resultTime; } } console.log(unixStandardDate(undefined, "/", "time")); //后台返回的时间戳处理 console.log(unixStandardDate(1543622400000)); //打印结果 "2018/12/06 09:58:12" "2018-12-01"
指定日期或者时间,转化成时间戳。
指定连接符替换只是为了方便不同格式的处理。
function unixTimeStamp(date, separatorStr) { let newDate = date.replace(eval("/"+ separatorStr +"/g"), "/"); let resultDate = new Date(newDate); let timeStamp = resultDate.getTime(); return timeStamp; } console.log(unixTimeStamp("2019-09-07 00:00:00", "-")); // 打印结果 1567785600000
返回当前月份的上一个月
function getPreMonth(date, separatorStr = "-") { let year = date.split(separatorStr)[0]; let month = date.split(separatorStr)[1]; //设置变量获取前一个月 let resultYear = year; let resultMonth = parseInt(month) - 1; //判断是否为1月份,返回上一年 if (resultMonth === 0) { resultYear = parseInt(resultYear) - 1; resultMonth = 12; } //判断新的月份是否小于10 if (resultMonth < 10) { resultMonth = "0" + resultMonth;//月份填补成2位。 } return resultYear + separatorStr + resultMonth; } console.log(getPreMonth("2016-09", "-")); //打印结果 "2016-08"小结
写本篇文章的主要目的只是为了更好的处理时间戳和日期格式在前后端交互工程中遇到的问题,关于更多的Date详情,请移步JavaScript Date 对象
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/99773.html
摘要:使用中的对象已经很久了但是一直以来都没有将常用的封装函数和遇到的坑记录下来趁着今天有空就记录下来方便自己下次直接使用并提醒自己遇到过那些坑。利用设置日期时从设置当设置为时即上个月的最后一天参考 使用JS中的Date对象已经很久了,但是一直以来都没有将常用的封装函数和遇到的坑记录下来,趁着今天有空,就记录下来,方便自己下次直接使用,并提醒自己遇到过那些坑。如果有哪些地方不对,希望大家能够...
摘要:中国标准时间将转换后的标准日期转换为时间戳。中国标准时间中国标准时间中国标准时间不设定时分秒,则默认转换为一般情况下可以转换以等分隔的日期形式,但是在中会出现不兼容的问题将所有的转为即可 分类一:将日期转换为时间戳 要将日期转换为时间戳,首先得先获取到日期,这里可以直接指定日期,或者是使用当前日期。要获取当前日期,我们可以使用new Date()来获取: (1)、将当前日期转换为时间戳...
摘要:类是一个抽象类,它为特定瞬间与一组诸如等日历字段之间的转换提供了一些方法,并为操作日历字段例如获得下星期的日期提供了一些方法。是不变的日期时间对象代表一个日期时间,往往被视为年月日时分秒。获得实例的日期和时间。 时区 GMT(Greenwich Mean Time):格林尼治时间,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。 UTC(U...
摘要:类是日期时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换也就是可以在对象与对象之间进行来回转换。构造方法由于为抽象类,不能直接使用,所以需要常用的子类。 day01【Object类、常用API】 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 教学目标 -[ ] 能够说出...
阅读 3715·2021-10-14 09:43
阅读 3310·2021-08-25 09:38
阅读 608·2019-08-30 15:55
阅读 1342·2019-08-30 13:05
阅读 2237·2019-08-29 16:05
阅读 497·2019-08-29 12:58
阅读 2790·2019-08-29 12:34
阅读 3241·2019-08-26 12:15