Math对象和日期对象

Math对象

Math常用API

生成随机数                 Math.random()

四舍五入                     Math.round()

最大值                         Math.max(多个数字)

最小值                         Math.min()

绝对值                         Math.abs()

向上取整                      Math.ceil()

向下取证                      Math.floor()

π                                  Math.PI

各进制间数字的转换

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

varx=110;

x.toString(2)//转为2进制

x.toString(8)//转为8进制

x.toString(16)//转为16进制

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

varx="110"//这是一个二进制的字符串表示

parseInt(x,2)//把这个字符串当做二进制, 转为十进制

varx="70"//这是一个八进制的字符串表示

parseInt(x,8)//把这个字符串当做八进制, 转为十进制

varx="ff"//这是一个十六进制的字符串表示

parseInt(x,16)//把这个字符串当做十六进制, 转为十进制

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

JSON格式

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

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

js中对象:

varobj={

name:"张三",

}

json中的对象:

{

“name“:”张三”

}

例:

[

   {

"name":"手机",

"price":"¥1999",

"color":"red"

   },

   {

"name":"电脑",

"price":"¥3998",

"color":"green"

   }

]

Date对象

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

创建日期对象

vardate=newDate();//使用构造函数创建一个当前时间的对象

vardate=newDate("2017-03-22");//创建一个指定时间的日期对象

vardate=newDate("2017-03-22 00:52:34");//创建一个指定时间的日期对象

vardate=newDate(2017,2,22,0,52,34);

vardate=newDate(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

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

functionformatDate(date) {

vard=newDate(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'));

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

<divid="box"></div>

<script>

functionshowNowTime(){

vardate=newDate();

varyear=date.getFullYear();// 获取年

varmonth=date.getMonth()+1;// 获取月 日期对象中使用0~11来表示1~12月

vard=date.getDate();// 获取日

varday=date.getDay();// 获取星期几

varhour=date.getHours();// 获取到时

varminute=date.getMinutes();// 获取分钟

varsecond=date.getSeconds();// 获取到秒数

// var msecond = date.getMilliseconds(); // 获取到毫秒数

// console.log(month);

box.innerText=("现在是北京时间:"+year+"年"+month+"月"+d

+"日。星期"+day+"。"+hour+"时"+minute+"分"+second+"秒");

   }

setInterval(showNowTime,1000);

</script>

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

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

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

newDate().getTime()

+newDate();

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

functioncount(){

vardate1=newDate(2010,10,3);

vardate2=newDate(2017,9,24);

vardate=(date2.getTime()-date1.getTime())/(1000*60*60*24);/*不用考虑闰年否*/

alert("相差"+date+"天");

}

案例:日期差值;

vardate1=newDate('2013/04/02 18:00')

vardate2=newDate('2013/04/02 19:22:21')

vars1=date1.getTime(),s2=date2.getTime();

vartotal=(s2-s1)/1000;

varday=parseInt(total/(24*60*60));//计算整数天数

varafterDay=total-day*24*60*60;//取得算出天数后剩余的秒数

varhour=parseInt(afterDay/(60*60));//计算整数小时数

varafterHour=total-day*24*60*60-hour*60*60;//取得算出小时数后剩余的秒数

varmin=parseInt(afterHour/60);//计算整数分

varafterMin=total-day*24*60*60-hour*60*60-min*60;//取得算出分后剩余的秒数

案例:显示中文时间

varchr=["零","一","二","三","四","五","六","七","八","九","十"];

init();

functioninit() {

vardiv=document.getElementsByTagName("div")[0];

setInterval(animation,16,div);

}

functionanimation(elem) {

vardate=newDate();

varyear=getChrYear(date.getFullYear());

varmonth=getNumberChr(date.getMonth()+1)+"月";

vardays=getNumberChr(date.getDate())+"日";

varweek="星期"+(date.getDay()===0?"日":getNumberChr(date.getDay()));

varhours=date.getHours();

hours=(hours<12?"上午 ":"下午 ")+getNumberChr(hours<12?hours:hours-12)+"点";

varminutes=getNumberChr(date.getMinutes(),true)+"分";

varseconds=getNumberChr(date.getSeconds(),true)+"秒";

elem.innerHTML=year+month+days+"&nbsp;&nbsp;"+week

+"&nbsp;&nbsp;"+hours+minutes+seconds;

}

functiongetChrYear(year) {

vara=Math.floor(year/1000);

varb=Math.floor(year/100)%10;

varc=Math.floor(year/10)%10;

vard=year%10;

if(a!==0)returnchr[a]+chr[b]+chr[c]+chr[d]+"年";

//            三位

if(b!==0)returnchr[b]+chr[c]+chr[d]+"年";

//           两位

if(c!==0)returnchr[c]+chr[d]+"年";

//           一位

returnchr[d]+"年";

}

functiongetNumberChr(num,zero) {

num=Math.floor(num);

if(num<10)return(zero?chr[0] :"")+chr[num];

if(num===10)returnchr[num];

if(num<20)return"十"+chr[num%10];

if(num%10===0&&num<100)returnchr[Math.floor(num/10)]+"十";

if(num<100)returnchr[Math.floor(num/10)]+"十"+chr[num%10];

if(num>100)return"输入错误";

}

日期格式化

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的时间戳


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容