JavaScript中日期间的差异

JavaScript中日期间的差异

如何找出两次约会的区别?



红糖糍粑
浏览 421回答 3
3回答

皈依舞

通过使用日期对象及其毫秒值,可以计算差异:var&nbsp;a&nbsp;=&nbsp;new&nbsp;Date();&nbsp;//&nbsp;Current&nbsp;date&nbsp;now.var&nbsp;b&nbsp;=&nbsp;new&nbsp;Date(2010,&nbsp;0,&nbsp;1,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;0);&nbsp;//&nbsp;Start&nbsp;of&nbsp;2010.var&nbsp;d&nbsp;=&nbsp;(b-a);&nbsp;//&nbsp;Difference&nbsp;in&nbsp;milliseconds.您可以通过将毫秒除以1000转换为秒,然后将结果转换为整数(移除表示毫秒的小数部分),获得秒数(作为整数/整数):var&nbsp;seconds&nbsp;=&nbsp;parseInt((b-a)/1000);然后你就可以minutes分划seconds,然后将其转换为整数。hours分划minutes通过60将其转换为整数,然后以相同的方式将更长的时间单位转换为整数。由此,可以创建一个函数,该函数可以较低单位的值和剩余的较低单位的值求出时间单位的最大总量:function&nbsp;get_whole_values(base_value,&nbsp;time_fractions)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;time_data&nbsp;=&nbsp;[base_value]; &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;time_fractions.length;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time_data.push(parseInt(time_data[i]/time_fractions[i])); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time_data[i]&nbsp;=&nbsp;time_data[i]&nbsp;%&nbsp;time_fractions[i]; &nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;return&nbsp;time_data;};//&nbsp;Input&nbsp;parameters&nbsp;below:&nbsp;base&nbsp;value&nbsp;of&nbsp;72000&nbsp;milliseconds,&nbsp;time&nbsp;fractions&nbsp;are//&nbsp;1000&nbsp;(amount&nbsp;of&nbsp;milliseconds&nbsp;in&nbsp;a&nbsp;second)&nbsp;and&nbsp;60&nbsp;(amount&nbsp;of&nbsp;seconds&nbsp;in&nbsp;a&nbsp;minute).&nbsp;console.log(get_whole_values(72000,&nbsp;[1000,&nbsp;60]));//&nbsp;->&nbsp;[0,12,1]&nbsp;#&nbsp;0&nbsp;whole&nbsp;milliseconds,&nbsp;12&nbsp;whole&nbsp;seconds,&nbsp;1&nbsp;whole&nbsp;minute.如果您想知道上面提供的输入参数为第二个日期对象见他们的名字如下:new&nbsp;Date(<year>,&nbsp;<month>,&nbsp;<day>,&nbsp;<hours>,&nbsp;<minutes>,&nbsp;<seconds>,&nbsp;<milliseconds>);正如在此解决方案的注释中所指出的,您不一定需要提供所有这些值,除非它们是您希望表示的日期所必需的。

largeQ

我发现了这个,这对我来说很好:计算两个已知日期之间的差额不幸的是,计算两个已知日期之间的日期间隔(如天、周或月)并不容易,因为不能只将Date对象添加到一起。为了在任何类型的计算中使用日期对象,我们必须首先检索日期的内部毫秒值,该值存储为一个大整数。这样做的函数是Date.getTime()。两个日期都被转换后,从前面的日期减去后一个日期,返回以毫秒为单位的差值。然后,可以通过将该数字除以相应的毫秒数来确定所需的间隔。例如,要获得给定毫秒数的天数,我们将一天的毫秒数除以86,400,000毫秒(1000 x 60秒x60分钟x24小时):Date.daysBetween&nbsp;=&nbsp;function(&nbsp;date1,&nbsp;date2&nbsp;)&nbsp;{ &nbsp;&nbsp;//Get&nbsp;1&nbsp;day&nbsp;in&nbsp;milliseconds &nbsp;&nbsp;var&nbsp;one_day=1000*60*60*24; &nbsp;&nbsp;//&nbsp;Convert&nbsp;both&nbsp;dates&nbsp;to&nbsp;milliseconds &nbsp;&nbsp;var&nbsp;date1_ms&nbsp;=&nbsp;date1.getTime(); &nbsp;&nbsp;var&nbsp;date2_ms&nbsp;=&nbsp;date2.getTime(); &nbsp;&nbsp;//&nbsp;Calculate&nbsp;the&nbsp;difference&nbsp;in&nbsp;milliseconds &nbsp;&nbsp;var&nbsp;difference_ms&nbsp;=&nbsp;date2_ms&nbsp;-&nbsp;date1_ms; &nbsp;&nbsp;//&nbsp;Convert&nbsp;back&nbsp;to&nbsp;days&nbsp;and&nbsp;return &nbsp;&nbsp;return&nbsp;Math.round(difference_ms/one_day);&nbsp;}//Set&nbsp;the&nbsp;two&nbsp;datesvar&nbsp;y2k&nbsp;&nbsp;=&nbsp;new&nbsp;Date(2000,&nbsp;0,&nbsp;1);&nbsp;var&nbsp;Jan1st2010&nbsp;=&nbsp;new&nbsp;Date(y2k.getFullYear()&nbsp;+&nbsp;10,&nbsp;y2k.getMonth(),&nbsp;y2k.getDate());var&nbsp;today=&nbsp;new&nbsp;Date();//displays&nbsp;726console.log(&nbsp;'Days&nbsp;since&nbsp;'&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;Jan1st2010.toLocaleDateString()&nbsp;+&nbsp;':&nbsp;'&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;Date.daysBetween(Jan1st2010,&nbsp;today));舍入是可选的,这取决于您是否需要部分天数。参照系

慕丝7291255

&nbsp;&nbsp;&nbsp;//&nbsp;This&nbsp;is&nbsp;for&nbsp;first&nbsp;date &nbsp;&nbsp;&nbsp;&nbsp;first&nbsp;=&nbsp;new&nbsp;Date(2010,&nbsp;03,&nbsp;08,&nbsp;15,&nbsp;30,&nbsp;10);&nbsp;//&nbsp;Get&nbsp;the&nbsp;first&nbsp;date&nbsp;epoch&nbsp;object &nbsp;&nbsp;&nbsp;&nbsp;document.write((first.getTime())/1000);&nbsp;//&nbsp;get&nbsp;the&nbsp;actual&nbsp;epoch&nbsp;values &nbsp;&nbsp;&nbsp;&nbsp;second&nbsp;=&nbsp;new&nbsp;Date(2012,&nbsp;03,&nbsp;08,&nbsp;15,&nbsp;30,&nbsp;10);&nbsp;//&nbsp;Get&nbsp;the&nbsp;first&nbsp;date&nbsp;epoch&nbsp;object &nbsp;&nbsp;&nbsp;&nbsp;document.write((second.getTime())/1000);&nbsp;//&nbsp;get&nbsp;the&nbsp;actual&nbsp;epoch&nbsp;values &nbsp;&nbsp;&nbsp;&nbsp;diff=&nbsp;second&nbsp;-&nbsp;first&nbsp;; &nbsp;&nbsp;&nbsp;&nbsp;one_day_epoch&nbsp;=&nbsp;24*60*60&nbsp;;&nbsp;&nbsp;//&nbsp;calculating&nbsp;one&nbsp;epoch &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;diff/&nbsp;one_day_epoch&nbsp;>&nbsp;365&nbsp;)&nbsp;//&nbsp;check&nbsp;,&nbsp;is&nbsp;it&nbsp;exceei &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;alert(&nbsp;'date&nbsp;is&nbsp;exceeding&nbsp;one&nbsp;year'); &nbsp;&nbsp;&nbsp;&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript