ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Math&Date、随机数、JSON格式、

2022-05-14 16:33:35  阅读:6  来源: 互联网

标签:10 date 日期 var JSON Date Math


typora-copy-images-to: media

Math对象

Math常用API

  • 生成随机数

  • 四舍五入

  • 最大值

  • 最小值

  • 绝对值

  • 向上取整

  • 向下取证

  • π

        Math内置对象:数学方法 处理一些简单的数学运算
        【了解】             - Math.PI 圆周率             - Math.abs() 绝对值             - Math.max() 最大值             - Math.min() 最小值             - Math.ceil() 天花板函数 表示向上取整             - Math.floor() 地板函数 向下取整             - Math.round() 四舍五入             - Math.sqrt() 开根号             - Math.pow() 求幂

        【重点】

            - Math.random()随机数

     随机数 5~10               - 随机数都是从0开始的 要从5开始的话 是不是表示要从0的基础上+5               - 设置的最大值是10               - Math.random()*5 得到就是0~5之间的随机数               - 在这个基础上要获取最大值 + 5               - Math.random()*(10-5) 获取最小值               - Math.random()*(10-5) + 5 获取范围之间值 最大值               - Math.random()*(10-5 + 1) + 5 如果想包含就+1         注意:最小值当做是起点,最大值当做终点,随机数当做速度
        【注意】             - 内置对象应该跟内容输出相应的符合需求             - 如果内置对象中的元素是字符串                 - 字符串的内容如果是数字的时候就会转换为数字类型                 - 字符串的内容如果是中文汉字的时候 会返回NaN     */     console.log(Math.PI) // 圆周率后面不可以加小括号     console.log(Math.abs('你好'))     console.log(Math.max(1,2,3,5,6,9,'12'))     console.log(Math.min(1,2,3,5,6,9,11))     console.log(Math.ceil(5.01))     console.log(Math.floor(4.9))     console.log(Math.round(1.9999)) // 小数点的后一位     console.log(Math.sqrt(4)) // 2     console.log(Math.pow(5,2)) // 25 5的二次方     // 生成随机数     console.log(Math.random()) // 生成一个0~1之间的随机数

随机数的封装

 // 第一种:生成[a,b)之间的随机数     function getRandom(a,b){         // 判断当前传入的两个参数谁是最大最小值?         var max = Math.max(a,b)         var min = Math.min(a,b)         return parseInt(Math.random() * (max-min)) + min         // 随机数*10-1 + 1     }     getRandom(1,10)
    // 第二种:生成[a,b]之间的随机数     function getRandom(a,b){         // 判断当前传入的两个参数谁是最大最小值?         var max = Math.max(a,b)         var min = Math.min(a,b)         return parseInt(Math.random() * (max-min + 1))+ min // 包含         // 加1就表示当前包含最大值(可能是10.1 可能是10.9 取整就是10最大值)     }     getRandom(1,10)

 

各进制间数字的转换

    一:计算机的常识             - HTML+CSS常用的进制是:十进制和十六进制             - JavaScript常用的进制是:二进制
        二:进制的表达方法             1.二进制                 - 单词:Binary 简写为B                 - 写法:0B和0b开头的             2.八进制                 - 单词:Octal 简写为O                 - 写法:0o和0O和O开头             3.十六进制                 - 单词:Hexadecimal 简写为H                 - 写法:以0x和0X开头             4.十进制                 - 单词:decimal 简写为D                 - 写法:非0开头             注意:前面几个进制都是有0的 为了区分所有加了0                 三:利用js中转换类型的方法 实现进制的转换             1.toString(进制转换)             2.parseInt(字符串,你把这个字符串当成几进制进行转换)     */     var a = 3 // 数字类型再解析的时候 显示的进制是10进制     var res = a.toString(2) // 将10进制的转换为2进制     console.log(res) // 11
    // 以数字0开头的进制数 8进制的数     var a1 = 011     var res1 = a1.toString(10)     console.log(res1) // 9
    // 以0x开头的进制数 十六进制     var a2 = 0x111     var res2 = a2.toString(10)     console.log(res2)
    var res3 = parseInt('77',8)     console.log(res3)  

tostring方法将十进制数字转为其他进制

var  x = 110;
x.toString(2)//转为2进制
x.toString(8)//转为8进制
x.toString(16)//转为16进制

parseInt方法将其他进制数字转为十进制

var x = "110"//这是一个二进制的字符串表示
parseInt(x, 2)//把这个字符串当做二进制, 转为十进制

var x = "70"//这是一个八进制的字符串表示
parseInt(x, 8)//把这个字符串当做八进制, 转为十进制

var x = "ff"//这是一个十六进制的字符串表示
parseInt(x, 16)//把这个字符串当做十六进制, 转为十进制

 

parseInt方法是用于将字符串转为数字的方法。 接受两个参数。 第一个要转换的字符串,第二个是可选的, 如果没有值, 默认是10进制; 如果有值, 就是以该值为转换进制

JSON格式

所有对象的属性名必须是字符串,必须加引号

对象的最后一个元素后面不允许加逗号

js中对象:

var obj = {
   name:"张三",
}

json中的对象:

{
   “name“:”张三”
}

例:

[
  {
       "name":"手机",
       "price":"¥1999",
       "color":"red"
  },
  {
       "name":"电脑",
       "price":"¥3998",
       "color":"green"
  }
]

 

Date对象

Date对象用来处理日期和时间

 创建方式:new Date()

创建日期对象

var date = new Date() // 创建好了一个日期对象     console.log(date) // Thu Mar 31 2022 14:42:16 GMT+0800 (伊尔库茨克标准时间) 东八区     // 拿到当前时候后 可以通过事件获取到相应的年月日     // 1.通过日期对象获取年份 日期对象.getFullYear()     var year = date.getFullYear()     // 2.通过日期对象获取月份 日期对象.getMonth()     var month = date.getMonth()+1 // js中计算的时候是从0开始数的 0~11结果后面应该+1     // 3.通过日期对象获取天数 日期对象.getDate()     var day = date.getDate()     // 4.通过日期对象获取小时 日期对象.getHours()     var hour = date.getHours()     // 5.通过日期对象获取分钟 日期对象.getMinutes()     var min = date.getMinutes()     // 6.通过日期对象获取秒数 日期对象.getSeconds()     var sec = date.getSeconds()     // 7.通过日期对象获取毫秒数 日期对象.getMilliseconds()     var mi = date.getMilliseconds()     console.log('现在是'+year+"年"+month+'月份'+day+"天"+hour+"小时"+min+"分钟"+sec+"秒数"+mi+'毫秒数')
var date = new Date();//使用构造函数创建一个当前时间的对象
var date = new Date("2017-03-22");//创建一个指定时间的日期对象
var date = new Date("2017-03-22 00:52:34");//创建一个指定时间的日期对象
var date = new Date(2017, 2, 22, 0, 52, 34);
var date = new Date(1523199394644);//参数:毫秒值

结果:Tue Jul 30 2019 21:26:56 GMT+0800 (中国标准时间)

类型使用自 CTU(Coordinated Universal Time,国际协调时间)1970 年 1 月 1 日午夜(零时)开始经过的毫秒数来保存日期。Date 类型保存的日期能够精确到 1970 年 1 月 1 日之前或之后的 285616 年。

Date构造函数当不传递任何参数的时候,返回的是当前时间。当传入参数的时候,获取的是传进去的时间

获取时间

使用日期对象的方法获取日期的指定部分

getMilliseconds();//获取毫秒值
getSeconds();//获取秒
getMinutes();//获取分钟
getHours();//获取小时
getDay();//获取星期,0-6   0:星期天
getDate();//获取日,即当月的第几天
getMonth();//返回月份,注意从0开始计算,这个地方坑爹,0-11
getFullYear();//返回4位的年份 如 2016

案例:将日期格式化成字符串

function formatDate(date) {
   var d = new Date(date),
     month = '' + (d.getMonth() + 1),
     day = '' + d.getDate(),
     year = d.getFullYear();
 
   if (month.length < 2) month = '0' + month;
   if (day.length < 2) day = '0' + day;
 
   return [year, month, day].join('-');
}

 console.log(formatDate('Sun May 13,2016'));

案例:获取当前时间 年月日时分秒 (刷新)

<div id="box"></div>
<script>
   function showNowTime(){
       var date = new Date();
       var year = date.getFullYear();  // 获取年
       var month = date.getMonth()+1; // 获取月 日期对象中使用0~11来表示1~12月
       var d = date.getDate(); // 获取日
       var day = date.getDay(); // 获取星期几
       var hour = date.getHours(); // 获取到时
       var minute = date.getMinutes(); // 获取分钟
       var second = date.getSeconds(); // 获取到秒数
       // var msecond = date.getMilliseconds(); // 获取到毫秒数
       // console.log(month);
       box.innerText = ("现在是北京时间:"+year+"年"+month+"月"+d
       +"日。星期"+day+"。"+hour+"时"+minute+"分"+second+"秒");
  }
   setInterval(showNowTime,1000);
</script>
 /*         如何把拿到的时候显示在浏览器显示区域并且让时间自己动起来?         1.每一秒都会刷新一次浏览器使用定时器         语法:             setInterval(function(){                 // 需要定时运行的代码写在这个位置             },时间毫秒数)         注意             - 时间毫秒数最小不能少于10ms 小于10ms默认就是10ms             - 常用的是1000ms             - 定时器还有第三个参数,参数基本不用(解决回调)
        2.如何把内容显示在浏览器中 dom结构.innerHTML = 插入的值     */ 例: setInterval(function(){         var date = new Date()         var year = date.getFullYear()         var month = date.getMonth()+1         var day = date.getDate()         var hour = date.getHours()         var min = date.getMinutes()         var sec = date.getSeconds()         var mi = date.getMilliseconds()         var res = '现在是'+year+"年"+month+'月份'+day+"天"+hour+"小时"+min+"分钟"+sec+"秒数"+mi+'毫秒数'         box.innerHTML = res     },1000)
 

日期转为毫秒数(时间戳)

格林威治时间/格林尼治时间

Date.parse("2015-08-24") // 获取1970年到设定时间的毫秒数
new Date().getTime()
+new Date();

案例:计算两个日期的时间差值

function count(){
   var date1=new Date(2010,10,3);
   var date2=new Date(2017,9,24);
   var date=(date2.getTime()-date1.getTime())/(1000*60*60*24);/*不用考虑闰年否*/
   alert("相差"+date+"天");
}

案例:日期差值;

var date1 = new Date('2013/04/02 18:00')
var date2 = new Date('2013/04/02 19:22:21')
var s1 = date1.getTime(),s2 = date2.getTime();
var total = (s2 - s1)/1000;
var day = parseInt(total / (24*60*60));//计算整数天数
var afterDay = total - day*24*60*60;//取得算出天数后剩余的秒数
var hour = parseInt(afterDay/(60*60));//计算整数小时数
var afterHour = total - day*24*60*60 - hour*60*60;//取得算出小时数后剩余的秒数
var min = parseInt(afterHour/60);//计算整数分
var afterMin = total - day*24*60*60 - hour*60*60 - min*60;//取得算出分后剩余的秒数

案例:显示中文时间

var chr=["零","一","二","三","四","五","六","七","八","九","十"];
init();
function init() {
   var div=document.getElementsByTagName("div")[0];
   setInterval(animation,16,div);
}
function animation(elem) {
   var date=new Date();
   var year=getChrYear(date.getFullYear());
   var month=getNumberChr(date.getMonth()+1)+"月";
   var days=getNumberChr(date.getDate())+"日";
   var week="星期"+(date.getDay()===0 ? "日" : getNumberChr(date.getDay()));
   var hours=date.getHours();
   hours=(hours<12 ? "上午 " : "下午 ")+getNumberChr(hours<12 ? hours : hours-12)+"点";
   var minutes=getNumberChr(date.getMinutes(),true)+"分";
   var seconds=getNumberChr(date.getSeconds(),true)+"秒";

   elem.innerHTML=year+month+days+"&nbsp;&nbsp;"+week
       +"&nbsp;&nbsp;"+hours+minutes+seconds;
}

function getChrYear(year) {
   var a=Math.floor(year/1000);
   var b=Math.floor(year/100)%10;
   var c=Math.floor(year/10)%10;
   var d=year%10;
   if(a!==0) return chr[a]+chr[b]+chr[c]+chr[d]+"年";
   //           三位
   if(b!==0) return chr[b]+chr[c]+chr[d]+"年";
   //           两位
   if(c!==0) return chr[c]+chr[d]+"年";
   //           一位
   return chr[d]+"年";
}

function getNumberChr(num,zero) {
   num=Math.floor(num);
   if(num<10) return (zero ? chr[0] : "")+chr[num];
   if(num===10) return chr[num];
   if(num<20) return "十"+chr[num%10];
   if(num%10===0 && num<100) return chr[Math.floor(num/10)]+"十";
   if(num<100) return chr[Math.floor(num/10)]+"十"+chr[num%10];
   if(num>100) return "输入错误";
}

日期格式化

   格式化:对文件或者代码的格式进行整理         日期格式化:把获取到的日期转换成我们想要的格式
        1.转换成年月日 toLocaleDateString()         2.转换成时分秒 toLocaleTimeString()         3.转换为年月日时分秒 toLocaleString()   var date = new Date()   console.log(date)
date.toLocalString();//本地风格的日期格式
date.toLocaleDateString(); // 获取日期
date.toLocaleTimeString(); // 获取时间

设置时间

date.setFullYear(2016) // 将日期对象中的年份设置为2016
date.setMonth(3) // 将日期对象中的月份设置为4月份
date.setDate(15) // 将日期对象中的日期设置为15号
date.setHours(12) // 将日期对象中的小时设置为12点
date.setMinutes(56) // 将日期对象中的分钟设置为56分
date.setSeconds(23) // 将日期对象中的描述设置为23秒
date.setTime(0) // 将日期对象设置为0的时间戳
 

标签:10,date,日期,var,JSON,Date,Math
来源: https://www.cnblogs.com/yyund/p/16270472.html

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有