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)

四、案例  

扫描二维码关注公众号,回复: 8209576 查看本文章

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>

猜你喜欢

转载自www.cnblogs.com/xiao-xi-z/p/12050294.html