【前端从0开始】JavaSript——Date对象

创建Date对象

var dateObj=new Date();
方法

  1. 将日期转为字符串
  toLocaleString()  
  toLocaleDateString() 
  toLocaleTimeString()
  1. 获取年、月、日、小时、分、秒
    ○1)getYear() //两位的年(2000年前)或三位的年[1900]
    获取两位数的年,从1900年开始计算,现在这个方法基本上已经没弃用
console.log(d.getYear());

○2)getFullYear() //四位的年
获取完整的四位数的年,使用的比较多

console.log(d.getFullYear());

○ 3)getMonth() //月份+1
获取月份,返回值为0-11,表示1月到12月,所以获取到月份之后需要+1

console.log(d.getMonth()+1); // 当前月+1

○4)getDate() //日
获取天,返回值为今天是几号

console.log(d.getMonth()+1); // 当前月+1

○ 5)getHours() //小时

console.log(d.getHours()); // 当前月+1

○6)getMinutes() //分钟

console.log(d.getMinutes()); // 当前分钟

○7)getSeconds() //秒

console.log(d.getMinutes()); // 当前秒钟

○ 8)getTime() //1970 年 1 月 1 日至今的毫秒数
时间戳专门用来计算时间的差值,或者倒计时等功能

var d = new Date();
// 1. 通过getTime获取
console.log(d.getTime()); // 当前秒钟
// 2. 通过valueOf获取
console.log(d.valueOf());
// 3. H5新增的获取毫秒树的方式
console.log(Date.now());
// 4. 添加+号[把日期对象转为数字类型]
console.log(+new Date());
  1. 定时器
    setInterval(函数体,时间(毫秒),参数(传递给函数的参数))
// 时间跳动案例
function getT(){
        // 获取时间
        var d = new Date();
        var year = d.getFullYear(); 
        var month = d.getMonth()+1;
        var day = d.getDate();
        var h = d.getHours();
        var m = d.getMinutes();
        var s = d.getSeconds();
        var ms = d.getMilliseconds();
        var oTime = document.getElementById('times');
        oTime.innerHTML = year+'-'+month+'-'+day+' '+h+':'+m+':'+s+' '+ms;
}
function stop(){
        // 清除某个定时器  clearInterval(定时器的名称);
        clearInterval(myTime);
}
  1. 怎么计算时间差
    使用时间戳【UNIX时间戳,timestamp】计算时间差
    2021-9-5 10:30:20 -> 1630809020000
    2020-8-9 12:30:45 -> 1596947445000
    差多少年,天,小时,分钟,秒钟
    时间戳 参照时间: 1970/1/1 0:0:0(格林威治时间)
    1970/1/1 8:0:0(北京时间)
    时间戳:d.getTime(); 单位是毫秒数

计算公式
d = parseInt(总秒数/60/60/24) // 天数
h = parseInt(总秒数/60/60%24) // 小时
m = parseInt(总秒数/60%60) // 分钟
s = parseInt(总秒数%60) // 秒

    var aTime = new Date('2021-9-5 10:30:20'); // 指定的某个时间
    var bTime = new Date('2021-8-5 8:20:10');  // 
    var cha = aTime.getTime() - bTime.getTime();
    if(cha<=0){
        console.log('时间输入有误!');
    }else{
        var miao = cha / 1000; // 秒的单位
        var s = miao % 60; // 秒

        var fen = parseInt(miao / 60); // 分钟的单位
        var m = fen%60;// 分钟

        var hour = parseInt(fen / 60); // 小时的单位
        var h = hour % 24; // 小时

        var day = parseInt(hour / 24); // 天
        var d = day % 365;

        var y = parseInt(day/365); // 年

        console.log('两个时间相差:'+y+'年,'+d+'天,'+h+'小时,'+m+'分钟,'+s+'秒钟'); 
    }

案例:苏宁易购显示抢购活动
【前端从0开始】JavaSript——Date对象_第1张图片
5. 设置时间
a.直接设置年月日,时分秒
new Date() 获取当前时间
new Date(字符串 / 时间戳 / 值); 获取指定时间
字符串:“2021-2-3 12:23:34”
时间戳:1617589820000
值: 2012,5,6,12,30,00

var d = new Date('2009-11-12 08:20:30'); // 正常字符串时间的表示方式
var d = new Date('Jan 1 2001 05:20:10'); // 日期时间对象返回的格式
var d = new Date(2020,10,10,10,20,30); // js的时间格式
var d = new Date(1607061589000); // 时间戳

b.简单设置时间
set… [用的不多]
setMonth();
setDate();
setFullYear();
案例1:某人从2008-8-8号过起了三天打鱼两天筛网的日期,问:今天该打鱼还是筛网,明天呢?明年的今天呢?

// 2008-8-8 张三 打鱼晒网的日期 - 三天打鱼两天筛网
// 今天该打鱼还是筛网 - 获取今天日期
// 经历了多少天:new Date - 2008-8-8
var now = new Date(); // 当前
var start = new Date('2008-8-8');
var cha = now - start; // 单位 ms
var s = parseInt(cha/1000);
var m = parseInt(s/60);
var h = parseInt(m/60);
var d = parseInt(h/24);
var yu = d % 5;
if(yu<3){
  console.log('晒网');
}else{
  console.log('打鱼');
}

案例2:输入年份生成日历

<style>
  body {
    text-align: center;
  }
  
  .box {
    margin: 0 auto;
    width: 880px;
  }
  
  .title {
    background: #ccc;
  }
  
  table {
    height: 200px;
    width: 200px;
    font-size: 12px;
    text-align: center;
    float: left;
    margin: 10px;
    font-family: arial;
  }
style>
<script>
  var year = parseInt(prompt('输入年份:', '2022')); // 制作弹窗输入年份,默认为2022年
  document.write(calendar(year));//调用函数生成指定年份的年历
  
  function calendar(year){
    var html = "
"; for(var m=0;m<=11;m++){ // 获取每月的第一天的星期 var w = new Date(year,m).getDay(); html += ``; html +=``;// 获取每月的天数var max =newDate(year,m,0).getDate(); html +=''for(var d=1; d <= max; d++){//如果该月的第1天不是星期日,则填充空白if(w && d ==1){ html +='';} html +='';if(newDate(year,m,d).getDay()==6){//如果星期六不是该月的最后一天,则换行 html +='';}elseif(d == max){//该月的最后一天,闭合标签 html +='';}} html +=''} html +='
${year}${m}
+ w + '"> ' + d + '
'
; return html; }
script>

你可能感兴趣的:(前端从0开始,前端,javascript,开发语言)