JS 计算两个时间戳相差年月日时分秒

JavaScript015

JS 计算两个时间戳相差年月日时分秒,第1张

// 计算两个时间戳相差的多少年多少月多少天

calculateDiffTime() {

  let startTime = '1629107469000'  //2021-08-16 17:51

  let endTime = '1976262719000'  //2032-08-16 17:51

  let flag = [1, 3, 5, 7, 8, 10, 12, 4, 6, 9, 11, 2]

  let start = new Date(startTime)

  let end = new Date(endTime)

  let year = end.getFullYear() - start.getFullYear()

  let month = end.getMonth() - start.getMonth()

  let day = end.getDate() - start.getDate()

  if (month <0) {

    year--

    month = end.getMonth() + (12 - start.getMonth())

  }

  if (day <0) {

    month--

    let index = flag.findIndex((temp) =>{

      return temp === start.getMonth() + 1

    })

    let monthLength

    if (index <= 6) {

      monthLength = 31

    } else if (index >6 &&index <= 10) {

      monthLength = 30

    } else {

      monthLength = 28

    }

    day = end.getDate() + (monthLength - start.getDate())

  }

  this.result = `相差${year}年${month}月${day}天`

  console.log(this.result)

}

#  计算两个时间戳相差的多少年多少月多少天多少小时多少分多少秒(另一种写法)

//计算两个时间戳相差的多少年多少月多少天多少小时多少分多少秒

calculateDiffTime (){

  let startTime = '1629107469000'  //2021-08-16 17:51

  let endTime = '1976262719000'  //2032-08-16 17:51

  let runTime = parseInt((endTime - startTime) / 1000)

  var year = Math.floor(runTime / 86400 / 365)

  runTime = runTime % (86400 * 365)

  var month = Math.floor(runTime / 86400 / 30)

  runTime = runTime % (86400 * 30)

  var day = Math.floor(runTime / 86400)

  runTime = runTime % 86400

  var hour = Math.floor(runTime / 3600)

  runTime = runTime % 3600

  var minute = Math.floor(runTime / 60)

  runTime = runTime % 60

  var second = runTime

  console.log(`相差${year}年${month}月${day}天${hour}小时${minute}分${second}秒`)

 return year+','+month+','+day+','+hour+','+minute+','+second

}

得到是毫秒数,假设得到的是cnt,则

cnt毫秒 = cnt / 1000 秒

cnt毫秒 = cnt / 1000 / 60 分

cnt毫秒 = cnt / 1000 / 60 / 60 小时

cnt毫秒 = cnt / 1000 / 60 / 60 / 24 天

注:时间戳即秒数

扩展资料:

关于时间戳的转换:

date = new Date('2014-04-23 18:55:49:123')//传入一个时间格式,如果不传入就是获取现在的时间了,就这么简单。

有三种方式获取

1、time1 = date.getTime()

2、time2 = date.valueOf()

3、time3 = Date.parse(date)

三种获取的区别

第一、第二种:会精确到很小

第三种:只能精确到秒,将用0来代替

比如上面代码输出的结果(一眼就能看出区别):

1398250549123

1398250549123

1398250549000

在js中,可以对两个时间戳进行相减,使用if语句判断结果,从而实现时间戳的比较。具体步骤如下:

1、在test.html文件内,命名为test.html,用于讲解js时间戳怎么比较。

2、在test.html文件内,在js标签内创建一个pan()函数,函数有两个参数,分别st1,st2。

3、在pan()函数内,分别将两个时间使用new Date()转换为时间对象,保存在t1,t2变量中。

4、在pan()函数内,将两个时间对象分别利用getTime()方法转换为时间戳,分别保存在变量tt1,tt2变量中。

5、在pan()函数内,将两个时间戳相减,差值保存在res变量中。

6、在pan()函数内,使用if语句对res进行判断,如果res等于0,提示“两个时间相等”,如果res大于0,提示“t1时间大于t2时间”,如果不符合上面两种情况,则提示“t2时间大于t1时间”。

7、在pan()函数外,创建两个时间变量,并调用pan()函数进行判断。

8、在浏览器打开test.html文件,查看判断的结果。