Obtenha o número da semana do ano em JavaScript

Subodh Poudel 12 outubro 2023
  1. Use as funções getFullYear() e getDay() junto com o objeto new Date() para obter o número da semana da data atual
  2. Use a estrutura de dados DateTime e suas propriedades weekNumber de Luxon para obter o número da semana atual do ano
Obtenha o número da semana do ano em JavaScript

Apresentaremos um método para encontrar o número da semana atual do ano em JavaScript, criando o objeto do construtor new Date() e as funções como getFullYear() e getDay(). Este método encontrará o número total de dias do ano e encontrará o número da semana. Usaremos as funções do objeto Math como floor() e ceil() neste método.

Este artigo também apresentará outro método para obter o número da semana atual em JavaScript usando um wrapper javascript Luxon. Luxon é uma biblioteca de datas e horas em JavaScript. Usaremos a estrutura de dados DateTime e a propriedade weekNumber desta biblioteca. Também usaremos a função now com a estrutura de dados DataTime.

Também demonstraremos um método para declarar uma variável global em PHP usando a função define(). Este método é uma forma de declarar uma variável global constante em PHP. O valor da variável não pode ser alterado posteriormente.

Use as funções getFullYear() e getDay() junto com o objeto new Date() para obter o número da semana da data atual

Este método usa o construtor new Date() e seu objeto junto com as funções como getFullYear() e getDay() para obter o número da semana atual do ano. O objeto Date retorna a data atual. A função getDay() encontra o dia da semana atual em um valor inteiro. Podemos criar um objeto do construtor Date para obter a data atual. O objeto chama a função getFullYear() para obter o início do ano atual. Podemos encontrar o número total de dias desde o início do dia até a hora atual, dividindo a diferença dos dias pelo total de milissegundos em um dia. Podemos usar a função floor() do objeto Math para arredondar o valor e obter um número inteiro. Este método finalmente calcula o número da semana do ano, dividindo o número total de dias por sete.

Por exemplo, crie um objeto Date currentdate. Crie outra variável, oneJan, para armazenar o primeiro dia do ano atual. Para isso, crie um novo objeto Date na variável e chame a função getFullYear() com o objeto currentdate como primeiro parâmetro do construtor Date. Use 0 e 1 como o segundo e o terceiro parâmetros. Subtraia a variável oneJan de currentdate e divida por 86400000. Envolva as operações dentro da função Math.floor() e atribua-a a uma variável numberOfDays. Chame a função getDay() com o objeto currentdate e adicione a variável numberOfDays e o valor 1 a ela. Envolva esta operação com a função Math.ceil() e armazene o resultado na variável result. Registre a variável no console junto com a variável currentdate usando interpolação de string.

O exemplo abaixo encontra a data atual e, em seguida, o primeiro dia do ano atual. Os parâmetros 0 e 1 na segunda linha representam o primeiro mês e o primeiro dia do ano atual. Subtraindo oneJan da currentdate obtém-se o valor em milissegundos, pelo que o total de milissegundos num dia 86400000 divide a diferença. A função getDay() retorna o dia na forma inteira começando com 0, então adicionamos 1. Portanto, o número da semana atual é calculado.

Código de exemplo:

currentdate = new Date();
var oneJan = new Date(currentdate.getFullYear(), 0, 1);
var numberOfDays = Math.floor((currentdate - oneJan) / (24 * 60 * 60 * 1000));
var result = Math.ceil((currentdate.getDay() + 1 + numberOfDays) / 7);
console.log(
    `The week number of the current date (${currentdate}) is ${result}.`);

Resultado:

The week number of the current date (Tue May 25 2021 16:55:53 GMT+0545 (Nepal Time)) is 21.

Use a estrutura de dados DateTime e suas propriedades weekNumber de Luxon para obter o número da semana atual do ano

Podemos usar a biblioteca Luxon para obter o número da semana atual do ano com a estrutura de dados DateTime e a propriedade weeknumber. O DateTime consiste em um carimbo de data / hora, um fuso horário e propriedades de configuração. O DateTime usado com a função now retornará a data e a hora para o instante atual no fuso horário do sistema. A propriedade weekNumber acessa o número da semana do ano atual. Podemos usar a função toISO() para converter o DateTime para o formato ISO.

Importe o objeto DateTime de luxon/src/datetime.js na primeira linha. Não se esqueça de baixar o código-fonte do Luxon. Salve o código-fonte em um arquivo JavaScript e certifique-se de incluir o arquivo usando a tag script na seção HTML. Chame a função now() com o objeto DateTime e, em seguida, chame a propriedade weekNumber. Atribua a uma variável data. Em seguida, registre a variável date no console. Consulte a Documentação do Luxon para saber mais sobre os objetos e propriedades DateTime.

Exemplo de código:

import DateTime from 'luxon/src/datetime.js'
const date = DateTime.now().weekNumber
console.log(`The current week number is ${date}`)

Resultado:

The current week number is 21
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Artigo relacionado - JavaScript DateTime