JavaScript时间的处理

JavaScript中的时间处理

Js获取当前日期时间及其它操作

var myDate = new Date();
myDate.getYear();        //获取当前年份(2位)
myDate.getFullYear();    //获取完整的年份(4位,1970-????)
myDate.getMonth();       //获取当前月份(0-11,0代表1月)
myDate.getDate();        //获取当前日(1-31)
myDate.getDay();         //获取当前星期X(0-6,0代表星期天)
myDate.getTime();        //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours();       //获取当前小时数(0-23)
myDate.getMinutes();     //获取当前分钟数(0-59)
myDate.getSeconds();     //获取当前秒数(0-59)
myDate.getMilliseconds();    //获取当前毫秒数(0-999)
myDate.toLocaleDateString();     //获取当前日期
var mytime=myDate.toLocaleTimeString();     //获取当前时间
myDate.toLocaleString( );        //获取日期与时间
  • 这些方法获取到的是数字,要显示的话要使用.toString()转换成字符串 。
  • 获取当前月份,需要myDate.getMonth() - 1
定义日期

Date 对象用于处理日期和时间。
可以通过 new 关键词来定义 Date 对象。以下代码定义了名为 myDate 的 Date 对象:

var myDate=new Date() 

注释:Date 对象自动使用当前的日期和时间作为其初始值。

操作日期

通过使用针对日期对象的方法,我们可以很容易地对日期进行操作。
在下面的例子中,我们为日期对象设置了一个特定的日期 (2008 年 8 月 9 日):

var myDate=new Date()
myDate.setFullYear(2008,7,9)

注意:表示月份的参数介于 0 到 11 之间。也就是说,如果希望把月设置为 8 月,则参数应该是 7。

在下面的例子中,我们将日期对象设置为 5 天后的日期:

var myDate=new Date()
myDate.setDate(myDate.getDate()+5)

注意:如果增加天数会改变月份或者年份,那么日期对象会自动完成这种转换。

比较日期(计算年龄)

let nowDate=new Date();//当前时间
let myDate=new Date();
myDate.setFullYear(myYear,myMonth-1,myDay);//出生时间
let newDate=nowDate.getTime()-myDate.getTime();//时间差(单位:毫秒)
// 向下取整  例如 10岁 20天 会计算成 10岁
// 如果要向上取整 计算成11岁,把floor替换成 ceil
var age = Math.ceil(newDate / 1000 / 60 / 60 / 24 /365);
if (isNaN(age)){
    age = "";
}
return age;

计时器

var t;
var seconds;
/*计时器*/
function timing(){
    seconds = 0;
    if (seconds > 21599) {
      let time = '6小时,不想继续了gg'
      return;
    }
    t = setTimeout(function(){
        seconds=seconds+1;
        timing();
    },1000);
    formatSeconds(seconds);
}
/*输出计时文字*/
function formatSeconds(seconds){
    var mins=0,hours=0,time='';
    if(seconds<3600){
      mins = parseInt(seconds /60)
      seconds=seconds%60
    }else{
      mins=parseInt(seconds/60)
      seconds=seconds%60
      hours=parseInt(mins/60)
      mins=mins%60
    }
    time=formatTime(hours)+':'+formatTime(mins)+':'+formatTime(seconds);
    return time;
}
/*数字是个位,前面补足0*/
function formatTime(num){
    if(num<10)
    return '0'+num
    else
    return num+''
}
/* 停止计时 */
function stopCount(){
    clearTimeout(t);
    console.log('结束游戏,游戏时长为:',seconds,'秒');
}

倒计时(目前能用,还需改进)

/*数字是个位,前面补足0*/
function formatTime(num){
    if(num<10)
    return '0'+num
    else
    return num+''
}
var lastSeconds=$('#seconds').val();//获取到结束日期(这里单位是秒)
var timeAdd=0;
var interval=1000;
function leftTimer(){
    timeAdd=timeAdd+1;
    var leftTime=lastSeconds - timeAdd;//减少后的时间
    if(leftTime>=0){
            var days=parseInt(leftTime/60/60/24,10);//天
            var hours=parseInt(leftTime/60/60%24,10);//小时
            var minutes =parseInt(leftTime/60%60,10);//分钟
            var seconds =parseInt(leftTime%60,10);//秒
            days = formatTime(days);
            hours = formatTime(hours);
            minutes = formatTime(minutes);
            seconds = formatTime(seconds);
            $('#timer').text(days+"天" + hours+"小时" + minutes+"分"+seconds+"秒");
        }else{
        //如果时间到期,do something...
            $('#btn-refund').attr('disabled',"true").css({'pointer-events':'none','background-color':'#dddddd'});//添加disabled属性,禁用按钮
            return false;
        }
}
window.setInterval(function(){leftTimer();}, interval);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值