当前位置: 首页 > Web前端 > JavaScript

JS中的数学和日期

时间:2023-03-27 01:06:06 JavaScript

Math和DateMath是js的内置对象,提供了一堆方法来帮助我们操作数字。Date是js内置的构造函数,它提供了一堆方法来帮助我们操作时间。Math没有多余的东西,就是一堆操作数的方法and1mustcontain0,butDoesnotcontain1varnum=Math.random()console.log(num)//获取随机数roundMath.round()是将小数四舍五入成整数varnum=10.1console.log(Math.round(num))//10varnum2=10.6console.log(Math.round(num2))//11absMath.abs()返回数字的绝对值varnum=-10console.log(math.abs(num))//10ceilMath.ceil()是小数点四舍五入得到的整数varnum=10.1console.log(Math.ceil(num))//11varnum2=10.9console.log(Math.ceil(num2))//11floorMath.floor()是一个四舍五入为小数的整数varnum=10.1console.log(Math.floor(num))//10varnum2=10.9console.log(Math.floor(num2))//10maxMath.max()得到你传入的数字中最大的数console.log(Math.max(1,2,3,4,5))//5minMath.min()得到你传入的数字中最小的数console.log(Math.min(1,2,3,4,5))//1PIMath.PI得到π的值,即3.1415936...console.log(Math.PI)//3.141592653589793由于计算机的计算精度,仅有的使用Math.PI获取小数点后15位时,无需加()进行数字转换。toString()方法可以在将数字转换为字符串时给出十进制数语法:toString(whatyouwanttoconvertbase)varnum=100console.log(num.toString(2))//1100100console.log(num.toString(8))//144console.log(num.toString(16))//64parseInt()方法可以在将字符串转换为数字时,将字符串作为小数转换为小数语法:parseInt(thestringtobeconverted转换为十进制)varstr=100console.log(parseInt(str,8))//64将100作为八进制数转换为十进制后得到的console.log(parseInt(str,16))//256100转为16进制数后得到的console.log(parseInt(str,2))//4100转为10进制数后得到的Datejs内置构造函数,专门用于获取时间newDate()newDate()不传参此时默认返回当前时间vartime=newDate()console.log(time)//当前时间为FriMar01201913:11:23GMT+0800(中国标准时间)newDate()传入参数vartime=newDate('2019-03-0313:11:11')console.log(time)//SunMar03201913:11:11GMT+0800(ChinaStandardTime)newDate()传递的参数很多情况下可以传递两个数字,第一个代表年,第二个代表月vartime=newDate(2019,00)//月份从0开始计算,0表示一月,11表示十二月console.log(time)//TueJan01201900:00:00GMT+0800(中国标准时间Between)传递三个数字,前两个保持不变,第三个代表一个月中的第几天,从1到31vartime=newDate(2019,00,05)console.log(time)//SatJan05201900:00:00GMT+0800(中国标准时间)转四个数字,前三个不变,第四个代表一天中的时间,从0到23vartime=newDate(2019,00,05,22)console.log(time)//SatJan05201922:00:00GMT+0800(中国标准时间)传递五个数字,前四个保持不变,第五个表示小时的多少分钟,从0到59vartime=newDate(2019,00,05,22,33)console.log(time)//SatJan05201922:33:00GMT+0800(中国标准时间)传递六个数字,前五个保留第一个不变,第六个表示一分钟多少秒,从0到59vartime=newDate(2019,00,05,22,33,55)console.log(time)//SatJan05201922:33:55GMT+0800(中国标准时间)作为字符串传入console.log(newDate('2019'))//2019年1月1日星期二08:00:00GMT+0800(中国标准时间)console.log(新日期('2019-02'))//2019年2月1日星期五08:00:00GMT+0800(中国标准时间)console.log(newDate('2019-02-03'))//SunFeb03201908:00:00GMT+0800(中国标准时间)console.log(newDate('2019-02-0313:'))//SunFeb03201913:00:00GMT+0800(ChinaStandardTimetime)console.log(newDate('2019-02-0313:13:'))//2019年2月3日星期日13:13:00GMT+0800(在中国标准时间)console.log(newDate('2019-02-0313:13:13'))//SunFeb03201913:13:13GMT+0800(中国标准时间)将日期字符串格式化为指定内容。例如,我们得到的时间字符串是SunFeb03201913:13:13GMT+0800(中国标准时间)。我指的是获取这个日期中的年份,我们要通过截取字符串的形式来获取,但是现在js给我们提供了一系列的方法来获取里面的指定内容getFullYeargetFullYear()方法就是获取里面的年份specifiedstringvartime=newDate(2019,03,03,08,00,22)console.log(time.getFullYear())//2019getMonthgetMonth()方法是获取指定字符串中的月份vartime=newDate(2019,03,03,08,00,22)console.log(time.getMonth())//3这里一定要注意,月份是从0开始的,0表示一月,1表示二月,以此类推getDategetDate()方法是获取指定字符串中的日期vartime=newDate(2019,03,03,08,00,22)console.log(time.getDate())//3getHours的getHours()方法是获取指定字符串中的小时vartime=newDate(2019,03,03,08,00,22)console.log(time.getHours())//8getMinutesgetMinutes()方法是获取分钟中的分钟指定字符串vartime=newDate(2019,03,03、08、00、22)控制台。log(time.getMinutes())//0getSecondsgetSeconds()方法是获取指定字符串中的秒vartime=newDate(2019,03,03,08,00,22)console.log(time.getSeconds())//22getDaygetDay()方法是获取指定字符串当前日期是星期几(星期日为0,星期六为6)vartime=newDate(2019,03,08,08,00,22)console.log(time.getDay())//1getTimegetTime()方法是获取执行时间到GMT的毫秒数vartime=newDate(2019,03,08,08,00,22)console.log(time.getTime())//1554681622000获取时间差,意思是获取两个时间点之间的时间差。在js中,时间不能直接做减法。我们需要一些特殊的操作。在编程界,有一个特殊的时间,是1970年1月1日00:00:00,这个时间叫做格林威治标准时间。在所有的编程世界里,这个时间都是一样的,格林威治标准时间的个数是0。从格林威治标准时间开始,每经过1毫秒,这个数字就会+1,所以我们可以从任意一个得到毫秒数时间节点到格林威治标准时间,然后减去两个毫秒得到两个时间点之间的毫秒差我们正在使用这个毫秒数来得到准确的时间来计算时间差。例如:让我们计算从2019-01-0100:00:00到2019-01-0304:55:34的时间差。首先,获取到绿道的两个时间点治理时间的毫秒数vartime1=newDate('2019-01-0100:00:00')vartime2=newDate('2019-01-0304:55:34')time1=time1.getTime()time2=time2.getTime()console.log(time1)//1546272000000console.log(time2)//1546462534000减去两个时间得到两个时间点之间的毫秒差vardifferenceTime=time2-time1console.log(differenceTime)//190534000现在我们计算了两个时间点之间的毫秒差值。将我们计算的毫秒换算成时间。先计算有多少天,认为一天一共是1000*60*60*24毫秒用毫秒数除以一天的毫秒数得到多少天vartime1=newDate('2019-01-0100:00:00')vartime2=newDate('2019-01-0304:55:34')time1=time1.getTime()time2=time2.getTime()vardifferenceTime=time2-time1//计算整天数varday=differenceTime/(1000*60*60*24)//2.20525462962963day=数学。ceil(day)//2因为得到的是带小数的天数,所以我们向下取整得到有多少天。用differenceTime减去两天包含的毫秒数,剩下的就是一天不够用的毫秒数用少于一天的毫秒数计算有多少小时,因为一个小时是1000*60*60毫秒将小于一天的毫秒数除以每小时的毫秒数得到多少小时vartime1=newDate('2019-01-0100:00:00')vartime2=newDate('2019-01-0304:55:34')time1=time1.getTime()time2=time2.getTime()vardifferenceTime=time2-time1//计算整天数varday=differenceTime/(1000*60*60*24)//2.20525462962963day=Math.floor(day)//2//计算整小时数varafterHours=differenceTime-(1000*60*60*24*2)varhours=afterHours/(1000*60*60)hours=Math.floor(hours)//4和之前一样,同理我们需要向下取整,使用afterHours-4h中包含的毫秒数我们的,剩下的就是小于一个小时的毫秒数用小于一个小时的毫秒数来计算有多少分钟,因为一分钟是1000*60毫秒用小于一个小时的毫秒数除以毫秒数一分钟通过统计可以得到多少分钟vartime1=newDate('2019-01-0100:00:00')vartime2=newDate('2019-01-0304:55:34')time1=time1。getTime()time2=time2.getTime()vardifferenceTime=time2-time1//计算天数varday=differenceTime/(1000*60*60*24)//2.20525462962963day=Math.floor(day)//2//计算整小时varafterHours=differenceTime-(1000*60*60*24*2)varhours=afterHours/(1000*60*60)hours=Math.floor(hours)//4//计算整分钟数varafterMinutes=afterHours-(1000*60*60*4)varminutes=afterMinutes/(1000*60)minutes=Math.floor(minutes)//55和之前一样计算秒数vartime1=newDate('2019-01-0100:00:00')vartime2=newDate('2019-01-0304:55:34')time1=time1.getTime()time2=time2.getTime()vardifferenceTime=time2-time1//计算整数天数varday=differenceTime/(1000*60*60*24)//2.20525462962963day=Math.floor(day)//2//计算整小时数varafterHours=differenceTime-(1000*60*60*24*2)varhours=afterHours/(1000*60*60)hours=Math.floor(hours)//4//计算整分钟数varafterMinutes=afterHours-(1000*60*60*4)varminutes=afterMinutes/(1000*60)minutes=Math.floor(minutes)//55//计算整秒数varafterSeconds=afterMinutes-(1000*60*55)varseconds=afterSeconds/1000seconds=Math.floor(seconds)//34最后用同样的方法减去整秒数,剩下的是毫秒数vartime1=newDate('2019-01-0100:00:00')vartime2=newDate('2019-01-0304:55:34')time1=time1.getTime()time2=time2.getTime()vardifferenceTime=time2-time1//计算天数varday=differenceTime/(1000*60*60*24)//2.20525462962963day=Math.floor(day)//2//计算小时数varafterHours=differenceTime-(1000*60*60*24*2)varhours=afterHours/(1000*60*60)hours=Math.floor(hours)//4//计算整分钟数varafterMinutes=afterHours-(1000*60*60*4)varminutes=afterMinutes/(1000*60)minutes=Math.floor(minutes)//55//计算整秒数varafterSeconds=afterMinutes-(1000*60*55)varseconds=afterSeconds/1000seconds=Math.floor(第二个ds)//34//计算毫秒数varmilliSeconds=afterSeconds-(1000*34)//0最后我们可以输出结果document.write('2019-01-0100:00:00and2019-01-0304:55:34')document.write(day+'days'+hours+'hours'+minutes+'minutes'+seconds+'seconds'+milliSeconds+'milliseconds')的区别