Este artigo explica brevemente Date() e timestamp, que podem ser usados para criar a hora, obter a hora local do computador e calcular a diferença horária, e anexa casos para aprofundar o aprendizado e a aplicação.
Índice
Obtenha horas, minutos e segundos
Caso de venda relâmpago de contagem regressiva
Data()
hora de criação
Use o construtor Date().
var d = new Date()
console.log(d);//时间对象.html:55 Tue Oct 25 2022 09:37:38 GMT+0800 (中国标准时间)
Resultado de saída:
Obtenha ano, mês e dia
Nota: O mês obtido é retornado como subscrito, portanto é necessário adicionar um. Mês é um array que armazena de 1 a 12 meses. Quando o usamos, ele retorna um subscrito, então +1 é necessário para exibir o mês normal.
//年
var y=d.getFullYear()
console.log(y);//2022
//月
// [1,2,3,4,5,6,7,8,9,10]
var m=d.getMonth()+1
console.log(m);//10
//日
var r=d.getDate()
console.log(r);//25
Resultado de saída:
Obtenha horas, minutos e segundos
//时
var h = d.getHours()
console.log(h);//
//分
var f = d.getMinutes()
console.log(f);//
//秒
var s = d.getSeconds()
console.log(s);//
Resultado de saída:
Obtenha o dia da semana
Nota: O início da semana é o dia da semana . Criamos um array, e o conteúdo do array são os dias da semana organizados em ordem. Em seguida, siga o código abaixo para obter o dia da semana. Obter o dia da semana retorna o mesmo subscrito.
//星期返回的是下标
var x=d.getDay()
var week=['星期日','星期一','星期二','星期三','星期四','星期五','星期六']
console.log(week[x]);
Resultado de saída:
relógio eletrônico
Assim, combinado com o código acima, podemos gerar a hora atual, ano, mês, dia, hora, minuto, segundo e dia da semana .
function timer () {
var d = new Date()
var y = d.getFullYear()
var m = d.getMonth() + 1
var r = d.getDate()
var h = d.getHours()
var f = d.getMinutes()
var s = d.getSeconds()
var x = d.getDay()
var week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
var str = '现在是' + y + '年' + m + '月' + r + '日' + h + '时' + f + '分' + s + '秒' + week[x]
return str
}
console.log(timer());
Resultado de saída:
Carimbo de data e hora
O número de milissegundos desde as 8h do dia 1º de janeiro de 1970 .
criar criar carimbo
Existem dois métodos, um é usar Date.now() diretamente, o outro é criar um objeto de tempo var d=new Date() e, em seguida, d.getTime().
Nota: Date.now() não é compatível com navegadores inferiores ao IE8.
var d=new Date()
console.log(d.getTime());
console.log(Date.now());//ie8以下的浏览器不兼容
Resultado de saída:
obter diferença horária
De acordo com as características do timestamp, podemos usar new Date('Year/Month/Day Hour:Minute:Second') ou new Date(Year, Month-1, Day, Hour, Minute, Second) para obter a data de janeiro 1º de janeiro de 1970 O número de milissegundos desde as 8h até um determinado momento do dia.
Desta forma, podemos obter os carimbos de data e hora de vários pontos no tempo. O número de milissegundos obtido pela subtração desses carimbos de data e hora é a diferença de tempo entre os dois tempos.
O código a seguir possui dois formatos. Entre aspas, escreva a hora normal, e o formato separado por vírgulas requer o mês -1.
var d = new Date('2023/11/11 8:0:0')//正常传入,2023年11月11日8点
var c = new Date(2023, 10, 11, 8, 0, 0)//也是2023年11月11日8点,但月份要-1
console.log(d.getTime());
console.log(c.getTime());
Resultado de saída:
Caso de venda relâmpago de contagem regressiva
Normalmente vemos casos de contagem regressiva, como contagem regressiva durante o Taobao Double Eleven, contagem regressiva para o Festival da Primavera, etc.
De acordo com as características dos carimbos de data e hora e com o temporizador de intervalo, podemos calcular a diferença horária entre agora e o Double Eleven deste ano, processar os milissegundos, convertê-los em dias, horas, minutos e segundos, e também criar um simples efeito de contagem regressiva.
código mostrado abaixo:
function timer(n) {
var miao1 = setInterval(function () {//间隔定时器
var con = document.getElementById('con')
var day11 = new Date(n)//预定的时间,以参数的形式传进来
var daynow = new Date()//现在的时间
var cha = day11 - daynow//二者的时间差,毫秒
cha = cha / 1000//毫秒化成秒
var day = parseInt(cha / 60 / 60 / 24);//天
day = day < 10 ? '0' + day : day;//小于10前面补零
var hour = parseInt(cha / 60 / 60 % 24);//时
hour = hour < 10 ? '0' + hour : hour;
var minute = parseInt(cha / 60 % 60);//分
minute = minute < 10 ? '0' + minute : minute;
var second = parseInt(cha % 60);//秒
second = second < 10 ? '0' + second : second;
con.innerHTML = '距离双十一还有' + day + '天' + hour + '小时' + minute + '分钟' + second + '秒'
if (res <= 0) {
// clearInterval(miao1)
con.innerHTML = '双十一开始啦,快来剁手啊!'
return
}
}, 1000)
}
timer('2023/11/11 0:0:0')
O efeito é mostrado na figura: Como o temporizador de intervalo é usado, ele mudará a cada segundo.
Obrigado por ler, por favor me dê um like.