js时间对象

时间对象

1. 时间对象的创建

var date = new Date() // 创建好了一个日期对象
console.log(date) // 东八区时间

// 创建好时间对象后可以通过时间获取到相应的年月日
// 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 minute = date.getMinutes()
// 6.通过日期对象获取秒数 日期对象.getSeconds()
var second = date.getSeconds()
// 7.通过日期对象获取毫秒数 日期对象.getMilliseconds()
var millisecond = date.getMilliseconds()

console.log(year,month,day,hour,minute,second,millisecond)
/* 2023 2 28 17 50 50 699 */

2. 日期的格式化

// 1.转换成年月日 toLocaleDateString()
// 2.转换成时分秒 toLocaleTimeString()
// 3.转换为年月日时分秒 toLocaleString()
var date = new Date()
// 2023/2/28
console.log(date.toLocaleDateString())
// 17:52:32
console.log(date.toLocaleTimeString())
// 2023/2/28 17:52:45
console.log(date.toLocaleString())

3. 设置日期对象

// 参数仅传一个数字,日期为1970年加3000毫秒 + 时区,中国时区是加8小时
let time1 = new Date(3000)

// 参数传一个字符串,代表时间在多少年 + 时区,中国时区是加8小时
let time2 = new Date("2020")

// 完整年月日 + 时区,中国时区是加8小时
let time3 = new Date("2012/2/2")

// 完整年月日 时分秒  + 时区,中国时区是加8小时
let time4 = new Date("2012/2/2 7:00:00")

// 注:时区与本系统设置有关

console.log(time1);
console.log(time2);
console.log(time3);
var date = new Date() // 本地时间
// 1.通过日期对象设置年份 日期对象.setFullYear()
date.setFullYear(2023)
// 2.通过日期对象设置月份 日期对象.setMonth()
date.setMonth(11) 
// 3.通过日期对象设置天数 日期对象.setDate()
date.setDate(01)
// 4.通过日期对象设置小时 日期对象.setHours()
date.setHours(00)
// 5.通过日期对象设置分钟 日期对象.setMinutes()
date.setMinutes(00)
// 6.通过日期对象设置秒数 日期对象.setSeconds()
date.setSeconds(00)
// 7.通过日期对象设置毫秒数 日期对象.setMilliseconds()
date.setMilliseconds(00)
console.log(date)

4. 时间戳的设置

  1. 上面手动设置日期之后最常见的需求就是拿你自己设置后面的时候和现在的时间进行比较,表示两者之间的时间差是多少
  2. 时间差设置需要把两个时间都转换为时间戳(将年月日时分秒这个时间转换为毫秒数)
  3. 标准时间:格林威治/格林尼治 Thu Jan 01 1970 08:00:00 GMT+0800
// 获取标准时间
var date = new Date(0)
console.log(date) // 不加0是当前时间,加0返回的是标准时间

// 有了标准时间可以设置获取时间戳,时间戳也就是把时间转化为毫秒数

// 第一种方法:date.getTime()
var date = new Date()
console.log(date.getTime()) // 可以获取当前时间,再把当前时间转换为时间戳 

var date = new Date('2022-10-1 00:00:00')
console.log(date.getTime()) // 可以自定义时间,再把自定义时间转换为时间戳 

// 第二种方法:Date.parse('时间')
var date = new Date()
console.log(Date.parse('2022-10-1 00:00:00'))

// 第三种:使用+号
var date = +new Date() 
console.log(date) 

5. 时间戳转为天时分秒

const inp1 = document.getElementById("inp1")
const btn = document.getElementById("btn")
const show = document.getElementById("show")
btn.onclick = function () {
let n = Number(inp1.value)
// 先求天数(乘100后除100,可以解决精度丢失问题)
let day = parseInt(parseInt(n * 100 / (24 * 60 * 60 * 1000)) / 100)

// 求小时
let hour = parseInt(parseInt(n % (24 * 60 * 60 * 1000) * 100 / 60 / 60 / 1000) / 100)

// 分钟数
let min = parseInt(n % (24 * 60 * 60 * 60 * 1000) % (60 * 60 *1000) / 60 / 1000)

// 秒数
let center = parseInt(n % (24 * 60 * 60 * 60 * 1000) % (60 * 60 *1000) % (60 * 1000) / 1000)

// 毫秒数
let mix = parseInt(n % (24 * 60 * 60 * 60 * 1000) % (60 * 60 *1000) % (60 * 1000) % 1000)

// 打印
show.innerHTML = `${day}${hour}小时${min}分钟${center}${mix}毫秒`
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值