欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js 时间常用处理方法

程序员文章站 2022-05-09 16:17:28
众所周知,JavaScript核心包含Data()构造函数,用来创建表示时间和日期的对象。 今天主要跟大家梳理一下,常用的时间、日期处理方法,方便大家使用和理解 格式化时间 老生常谈,大概会这么写 1234567891011 var format = function (time) { var y ......

 

众所周知,javascript核心包含data()构造函数,用来创建表示时间和日期的对象。

今天主要跟大家梳理一下,常用的时间、日期处理方法,方便大家使用和理解

格式化时间

老生常谈,大概会这么写

1
2
3
4
5
6
7
8
9
10
11
var format = function (time) { 
var y = time.getfullyear(); //getfullyear方法以四位数字返回年份
var m = time.getmonth() + 1; // getmonth方法从 date 对象返回月份 (0 ~ 11),返回结果需要手动加一
var d = time.getdate(); // getdate方法从 date 对象返回一个月中的某一天 (1 ~ 31)
var h = time.gethours(); // gethours方法返回 date 对象的小时 (0 ~ 23)
var m = time.getminutes(); // getminutes方法返回 date 对象的分钟 (0 ~ 59)
var s = time.getseconds(); // getseconds方法返回 date 对象的秒数 (0 ~ 59)
return y + '-' + m + '-' + d + ' ' + h + ':' + m + ':' + s;
}

var time1 = format(new date());

但是有什么问题呢?一般来说小于10的值,要在前面添加字符串‘0’的,我们大可以写个判断来解决他,但是太麻烦了~

其实可以这样

1
2
3
4
5
6
7
8
var format = function (time) { 
var date = new date(+time + 8 * 3600 * 1000);
return date.tojson().substr(0, 19).replace('t', ' ').replace(/-/g, '.');
}
var time1 = format(new date());

//date的‘tojson’方法返回格林威治时间的json格式字符串,转化为北京时间需要额外增加8个时区,然后把‘t’替换为空格,即是我们需要的时间格式,后面可以通过正则将日期分隔符换成任何想要的字符。
//一元加操作符可以把任何数据类型转换成数字,所以获取时间对象对应毫秒数的另一个方法是+date或number(date)

获取当月最后一天

一个月可能有28/29/30/31天,使用写死数据的方式来解决闰年和大小月显然是不科学的。

1
2
3
4
5
6
7
8
function getlastdayofmonth (time) {
var month = time.getmonth();
time.setmonth(month+1);
time.setdate(0);
return time.getdate()
}
getlastdayofmonth(new date())
//先月份加一,再取上个月的最后一天

获取这个季度第一天

用来确定当前季度的开始时间,常用在报表中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function getfirstdayofseason (time) {
var month = time.getmonth();
if(month <3 ){
time.setmonth(0);
}else if(2 < month && month < 6){
time.setmonth(3);
}else if(5 < month && month < 9){
time.setmonth(6);
}else if(8 < month && month < 11){
date.setmonth(9);
}
time.setdate(1);
return time;
}
getfirstdayofseason(new date())
//先月份加一,再取上个月的最后一天

获取中文星期

这也是个比较常见的雪球,完全没必要写一长串switch啦,直接用charat来解决。

1
let time ="日一二三四五六".charat(new date().getday());

获取今天是当年的第几天

来看看今年自己已经浪费了多少时光~

1
2
3
4
var time1 = math.ceil(( new date() - new date(new date().getfullyear().tostring()))/(24*60*60*1000));

//需要注意的是new date()不设置具体时间的话new date(2019)得到的不是0点而是8点
//tue jan 01 2019 08:00:00 gmt+0800 (中国标准时间)

获取今天是当年的第几周

日历、表单常用

1
2
3
var week = math.ceil(((new date() - new date(new date().getfullyear().tostring()))/(24*60*60*1000))/7);

//在获取第几天的基础上除7,向上取整

 

获取今天是当年还剩多少天

再来看看今年还有多少天可以浪费~

1
2
3
4
5
6
7
8
9
function restofyear(time) {
var nextyear = (time.getfullyear() + 1).tostring();
var lastday = new date(new date(nextyear)-1); //获取本年的最后一毫秒:
console.log(lastday)
var diff = lastday - time; //毫秒数
return math.floor(diff / (1000 * 60 * 60 * 24));
}
restofyear(new data())
//先取下一年第一秒,再减1毫秒。顺便思考一下为什么
(0)
打赏 js 时间常用处理方法 微信扫一扫

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

js 时间常用处理方法
验证码: js 时间常用处理方法
Copyright © 2017-2022  保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com