js处理时间问题,获取当前时间(年月日格式),和时间转化为时间搓比较大小

本文介绍JavaScript中处理时间的各种实用方法,包括时间对比、获取当前时间、计算前后N天日期及时间转换为秒等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.时间比较:

时间对比方案一:

var time1=new Date(‘2018-12-20:00:00:00’.replace(/-/g, '/')).getTime();//将指定时间转化成时间搓

var now=new Date().getTime();//或者当前时间的时间搓

if(time1>now){

 //进行时间的对比

}

 

时间对比方案二  利用Date.parse()

  var time1=Date.parse(‘2018-12-20:00:00:00’.replace(/-/g,"/"));

 var current=Date.parse(new Date());

if(time1>current){

 //进行时间的对比

}

 

 

 

//这样来比较时间的大小

把年月日 时分秒的时间,转化为时间搓

例如:var aaa=2019-01-07 14:00:00

var startDateTime = new Date(aaa.replace(new RegExp('-', 'g'), '/')).getTime();  --->结果是1546840800000 (毫秒数)

 

 

1.将 2018-07-23 转化为时间搓----可以用来比较两个时间的大小(方法一)

var time='2018-07-23'

console,log(splitTime(time) )

function splitTime(time) {
    var arr = time.split(" ");
    var day = arr[0].split("-");
    return Date.UTC(day[0], (day[1] - 1), day[2]) / 1000; //将当前时间转换成时间搓
}

 

比较两个时间的大小(方法二)--缺点:不能比较相等的情况,可以比较> 和<

var start1 ="2018-08-26";
 var start2 ="2018-08-25";

if(splitTime(start1)>splitTime(start2)){

}else if(splitTime(start1)<splitTime(start2)){

}

function splitTime(time){
      time = new Date(time.replace(/\-/g, "\/"));  
       return time
 }

 

2.获取当前时间的  年月日(不需要时分秒的情况),如下格式的  2018-07-23

function CurentTime() {
    var now = new Date();
    var year = now.getFullYear(); //年   
    var month = now.getMonth() + 1; //月   
    var day = now.getDate(); //日
    var clock = year + "-";

    if (month < 10)
        clock += "0";

    clock += month + "-";

    if (day < 10)
        clock += "0";

    // clock += day + " ";
    clock += day;
    return (clock);
}

 

//获取当前的年月日,没有补0的情况

var data=new Date().getFullYear() + '-' + (new Date().getMonth() + 1) + '-' + new Date().getDate();

 

js获取当前时间前后N天前后日期的方法

这个javascript函数是获取当前时间前后N天日期的方法,可以得到昨天,今天,明天,一月前,三月前,半年前,一年前的日期,只要修改参数就可以实现得到任何一个天数。具体用法如下:

function GetDateStr(AddDayCount) { 

   var dd = new Date();

   dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期

   var y = dd.getFullYear(); 

   var m = (dd.getMonth()+1)<10?"0"+(dd.getMonth()+1):(dd.getMonth()+1);//获取当前月份的日期,不足10补0

   var d = dd.getDate()<10?"0"+dd.getDate():dd.getDate();//获取当前几号,不足10补0

   return y+"-"+m+"-"+d; 

}

 

 

console.log("半年前:"+GetDateStr(-180));

console.log("三月前:"+GetDateStr(-90));

console.log("一月前:"+GetDateStr(-30));

console.log("一周前:"+GetDateStr(-7));

console.log("昨天:"+GetDateStr(-1));

console.log("今天:"+GetDateStr(0));

console.log("明天:"+GetDateStr(1));

console.log("后天:"+GetDateStr(2));

console.log("一月后:"+GetDateStr(30));

console.log("三月后:"+GetDateStr(90));

console.log("半年后:"+GetDateStr(180)); 

例如:今天是2018-11-28  GetDateStr(-7)得到的是 2018-11-21;

 

获取当前时间,并转化为秒;并且指定传入一个时间,转化为秒

function timeTrans(times) {
    if (times) {

     //传入指定时间(例:2018-11-21),并转化为秒
        var date = new Date(Date.parse(times.replace(/-/g, "/")));
           date = date.getTime();
        var time_sec = Math.floor(Math.floor(date / 1000));  
    } else {

       //获取当前时间,并转化为秒
        var time = new Date().getTime();
        var time_sec = Math.floor(Math.floor(time / 1000));
    }

    return time_sec;

};

 

插入一个js的 setHours()方法的使用:

 

定义和用法

setHours() 方法用于设置指定的时间的小时字段。

语法

dateObject.setHours(hour,min,sec,millisec)
参数描述
hour必需。表示小时的数值,介于 0(午夜) ~ 23(晚上11点) 之间,以本地时间计(下同)。
min可选。表示分钟的数值,介于 0 ~ 59 之间。在 EMCAScript 标准化之前,不支持该参数。
sec可选。表示秒的数值,介于 0 ~ 59 之间。在 EMCAScript 标准化之前,不支持该参数。
millisec可选。表示毫秒的数值,介于 0 ~ 999之间。在 EMCAScript 标准化之前,不支持该参数。

返回值

调整过的日期的毫秒表示。在 ECMAScript 标准化之前,该方法什么都不返回。

 例如:

new Date(new Date().setHours(0, 0, 0, 0))
//输出 Thu Apr 11 2019 00:00:00 GMT+0800 (中国标准时间)

new Date(new Date().setHours(23, 59, 59, 59))
//输出 Thu Apr 11 2019 23:59:59 GMT+0800 (中国标准时间)

这种方法可以拿到当天时间的0点和24点,用于处理一些时间比较时的需求




当需要进行时间对比时,可以把拿到的时间转化为时间搓来进行对比,如下:

 new Date(new Date().setHours(0, 0, 0, 0)).getTime();
//输出  1554912000000

这样就可以进行时间的对比了,可以拿到一个指定时间和这一天的开始时间,和结束时间作对比

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值