JavaScript之Date()对象(日期对象)

一、定义日期

日期对象Date()对象是系统定义好的对象。Date()这是个构造函数。

特点:返回的是当日的日期,不是实时性,表示时间记录作用。

var now=new Date()

二、常用方法

//获取特定格式的时间

now.getFullYear()  // 获取完整的年份 2019
now.getMonth()   //获取当前月份(0-11,0代表1月)
now.getDate()    //获取当前日(1-31)
now.getDay()     //获取当前星期X(0-6,0代表星期天)
now.getTime()   //获取当前时间(从1970.1.1开始的毫秒数)
now.getHours()     //获取当前小时数(0-23)
now.getMinutes()    //获取当前分钟数(0-59)
now.getSeconds()   //获取当前秒数(0-59)
now.toLocaleDateString()  //获取当前日期  "2019/12/16"

//设置特定格式的时间
 
now.setTime() //以毫秒设置 Date 对象。
now.setFullYear() //设置年份。
now.setMonth(month, day) // 设置月份。 可用于设置月份中的某一天。
now.setDate()  // 设置一个月的某一天。
now.setHours(hour, min, sec, millisec)  // 设置指定的时间的小时字段。 该方法可用于设置分钟, 秒以及毫秒数。
now.setMinutes(min, sec, millisec)  // 用于设置指定时间的分钟字段。 该方法同样可用于设置秒数与毫秒数。
now.setSeconds(sec, millisec)  // 用于设置日期对象的秒字段。 可以用于设置毫秒数。
now.setMilliseconds()  // 用于设置指定时间的毫秒字段。( 0 - 999)

//转换为字符串
 
now.toString()
now.toDateString()     //返回日期的字符串形式
now.toTimeString()     //返回时间的字符串形式。
now.toLocaleDateString()     //返回一个字符串, 代表日期的当地写法
now.toLocaleTimeString()     //返回一个字符串, 代表时间的当地写法
 
//比较日期
var myDate=new Date();
myDate.setFullYear(2008,8,9);
var today = new Date();
if (myDate>today)
{
alert("Today is before 9th August 2008");
}
else
{
alert("Today is after 9th August 2008");
}

 

 三、注意事项

1. new Date()  为系统日期,若获取真实日期:

a.  通过后台获得

b.  console.log(new Date($.ajax({ async: false }).getResponseHeader("Date")), new Date());

2.

new Date(new Date('2016-04-12').getTime()); // Tue Apr 12 2016 08:00:00 GMT+0800
new Date(new Date('2016/04/12').getTime()); // Tue Apr 12 2016 00:00:00 GMT+0800

new Date('2014-01-01') // Wed Jan 01 2014 08:00:00 GMT+0800 (CST)
new Date('2014-1-1')   // Wed Jan 01 2014 00:00:00 GMT+0800 (CST)

 

四、案例  

1.日期转为时间戳

var time1 = date.getTime();    
var time2 = date.valueOf();
var time3 = Date.parse(date);
//第一、第二种:会精确到毫秒,第三种:只能精确到秒,毫秒用000替代

 

2. 时间戳转日期

 

function getdate() {
   var now = new Date(),
   y = now.getFullYear(),
   m = now.getMonth() + 1,
   d = now.getDate();
   return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8);
}

 

 

3.n天前的日期

 

function getdateBefore(n){
  var lastDate = new Date(new Date() - 1000 * 60 * 60 * 24 * n),
    lastY = lastDate.getFullYear(),
    lastM = lastDate.getMonth() + 1,
    lastD = lastDate.getDate();
  return lastY + "-" + (lastM < 10 ? "0" + lastM : lastM) + "-" + (lastD < 10 ? "0" + lastD : lastD);//得到30天前的时间
}

 

4.时间

 

function formatSeconds(value) {
    var theTime = parseInt(value);// 秒
    var middle= 0;// 分
    var hour= 0;// 小时

    if(theTime > 60) {
        middle= parseInt(theTime/60);
        theTime = parseInt(theTime%60);
        if(middle> 60) {
            hour= parseInt(middle/60);
            middle= parseInt(middle%60);
        }
    }
    var result = ""+parseInt(theTime)+"秒";
    if(middle > 0) {
        result = ""+parseInt(middle)+"分"+result;
    }
    if(hour> 0) {
        result = ""+parseInt(hour)+"小时"+result;
    }
    return result;
}

 

 

5.倒计时

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body onload="countTime()">
    <div>
         <span id="dayDate">00</span>
         <span id="hourDate">00</span>
         <span id="minuteDate">00</span>
         <span id="secondDate">00</span>
    </div>
    <script type="text/javascript">
        function countTime() {
            //获取当前时间
            var date = new Date();
            var now = date.getTime();

            //设置截止时间
            var str="2019/12/18 16:50:03";
            var endDate = new Date(str);
            var end = endDate.getTime();

            //时间差
            var timeGap = end-now;
            //定义变量 d,h,m,s保存倒计时的时间
            var d,h,m,s;
            if (timeGap>=0) {
                d = Math.floor(timeGap/1000/60/60/24);
                h = Math.floor(timeGap/1000/60/60%24);
                m = Math.floor(timeGap/1000/60%60);
                s = Math.floor(timeGap/1000%60);
                //递归每秒调用countTime方法,显示动态时间效果
                setTimeout(countTime,1000);//计时器
            }
            else {
                d = 0;
                h = 0;
                m = 0;
                s = 0;
            }
            //将倒计时赋值到div中
            document.getElementById("dayDate").innerHTML = d+"天";
            document.getElementById("hourDate").innerHTML = h+"时";
            document.getElementById("minuteDate").innerHTML = m+"分";
            document.getElementById("secondDate").innerHTML = s+"秒";
        }
    </script>
</body>
</html>

 

6.时钟

<html>
<head>
<script type="text/javascript">
function startTime()
{
var today=new Date()
var h=today.getHours()
var m=today.getMinutes()
var s=today.getSeconds()
// add a zero in front of numbers<10
m=checkTime(m)
s=checkTime(s)
document.getElementById('txt').innerHTML=h+":"+m+":"+s
t=setTimeout('startTime()',500)
}

function checkTime(i)
{
if (i<10) 
  {i="0" + i}
  return i
}
</script>
</head>

<body onload="startTime()">
<div id="txt"></div>
</body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值