解决js日期问题,看这篇就够了

日期是应用非常广泛的一个内置对象,今天来分享下日期对象的主要用法。

js日期创建方式

日期是js的一个内置对象,可以用new关键字创建日期实例,举例如下:

new Date()           //获取当前时间对应的日期对象
new Date(year, month, day, hours, minutes, seconds, milliseconds)   //指定日期和时间创建新的日期对象
new Date(milliseconds)    //从1970 年 1 月 1 日开始计算的milliseconds秒后的时间点为指定时间点创建对象
new Date(datestr)           //根据日期字符串获取日期对象,日期字符串的格式对应下文4中日期输入格式

对于指定日期和时间创建新的日期对象的创建方法(即 new Date(year, month, day, hours, minutes, seconds, milliseconds))的参数做如下说明:
1.7个参数分别指定年、月、日、小时、分钟、秒和毫秒(按此顺序)
2.JavaScript 从 0 到 11 计算月份
3.以两位数作为年份参数传入时将被解释为 19xx 年,例如:new Date(20, 4, 15)将被解释为1920年5月15号。new Date(2, 4, 15)将被解释为1902年5月15号。
4.参数个数并不是固定的,除了前两个参数以外,其他参数均可省略,省略的参数默认为0。例如:new Date(2020, 4, 15)指按2020年5月15号0点0分0秒这个时间创建的。

4种日期输入格式

1.ISO 日期,格式"YYYY-MM-DD",例如"2020-4-15"
2.短日期,格式"MM/DD/YYYY"或者"YYYY/MM/DD",例如:“4/15/2020” 或 “2020/4/15”
3.长日期,格式"MMM DD YYYY",例如:“Apr 15 2020”,使用全称April也是合法的
4.js默认输出格式,格式"WWW MMM DD YYYY hh:mm:ss GMT/UTC+时区(时区注释)",例如:Wed Apr 15 2020 00:00:00 GMT+0800 (中国标准时间)

js日期使用

日期对象默认将以全文本字符串格式输出(星期 月份 日期 年份 时间 时区),如下代码:
var d = new Date(2020, 3, 15);
document.getElementById("demo").innerHTML = d;

//输出Wed Apr 15 2020 00:00:00 GMT+0800 (中国标准时间)
日期对象包含的方法列举以及其用法说明

1.toUTCString() 将日期转换为 UTC 格式字符串,用法如下:

var today = new Date();
var utcstr =  today.toDateString();
//utcstr值为Wed, 15 Apr 2020 08:33:35 GMT

2.toDateString() 将日期转换"WWW MMM DD YYYY"格式字符串,用法举例如下:

var today = new Date();
var utcstr =  today.toDateString();
//utcstr值为Wed Apr 15 2020

3.getDate()以数值返回日期对象所在日期(1-31)
4.getDay()以数值返回日期对象所在星期(0-6)
5.getMonth()以数值返回日期对象所在月份(0-11)
6.getFullYear()以四位数值返回年份,例如2020
7.getHours()以数值返回日期对象所存时间点,小时(0-23)
8.getMinutes()以数值返回日期对象所存时间点,分钟(0-59)
9.getSeconds()以数值返回日期对象所存时间点,秒(0-59)
10.getMilliseconds()以数值返回日期对象所存时间点,毫秒(0-999)
上文中3-10方法均有对应的utc时间获取方法,对应方法的方法名格式为标准格式方法方法名加utc,例如获取日期,标准方法为getDate(),utc时间方法为getUTCDate(),获取星期,标准方法为getDay,utc时间方法为getUTCDay()。

11.setFullYear(year,…) 以四位数值设置日期对象所在年份,可以选择设置月和日
12.setMonth(month) 以数值设置日期对象所月份,如果数值大于当前年份的最大月,js会自动计算从Date对象的当前年份的1月加上你所设置的月数之后的时间。
13.setDate(date) 以数值设置日期对象所在日期,当参数大于当前月份的最大日期时,js会自动计算从Date对象的当前月份的1日加上你设置的天数之后的时间。
14.setHours() 以数值设置日期对象所在小时,如果数值大于23,js会自动计算从Date对象的当前时间的0点加上你设置的小时数后的时间。
15.setMinutes() 以数值设置日期对象所在分钟,如果数值大于59,js会自动计算从Date对象的当前时间的0分加上你设置的分钟数后的时间。
16.setSeconds() 以数值设置日期对象所在秒钟,如果数值大于59,js会自动计算从Date对象的当前时间的0秒加上你设置的秒数后的时间。
17.setMilliseconds() 以数值设置日期对象所在毫秒,如果数值大于999,js会自动计算从Date对象的当前时间的0毫秒秒加上你设置的秒数后的时间。
上文11-17的设置函数会更改日期对象所存的时间。

18.getTime() 获取日期对象时间戳
19.setTime() 以时间戳的格式设置日期对象的时间

日期对象应用举例

1.将时间戳和日期字符串相互转换

//时间戳转字符串
var needchange = 1586941837375;
var newdata = new Date(milliseconds) ;
var datastr = newdata.toDateString();
//字符串转时间戳
var someday = new Date("2019-10-1");
var needtime = someday.getTime();

2 .判断今天在2019年10月1号前还是后

var today, someday, text;
today = new Date();
someday = new Date("2019-10-1");

if (someday > today) {
  text = "今天在 2019年10月1号之前";
} else {
  text = "今天在2019年10月1号之后";
}

3.获得100天后是几月几号星期几

var today= new Date() ;
today.setDate(today.getDate() + 100);
var month = today.getMonth();
var date = today.getDate();
var weekday = today.getDay();

4.获取100个月后是哪一年

var today= new Date() ;
today.setMonth(today.getMonth() + 100);
var needyear= today.getFullYear();

5.获取100小时后是什么时间

var today= new Date() ;
today.setHours(today.getHours()+ 100);
document.getElementById("demo").innerHTML = today;
//打印出来的就是100小时后的时间日期
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值