Função em PHP que mostra o número da semana no ano

Publicado por albert guedes em 05/08/2011

[ Hits: 28.304 ]

Blog: https://teko.net.br

 


Função em PHP que mostra o número da semana no ano



Essa é uma função que não se encontra explicitamente pela net. Se você precisa saber o número da semana no ano, use a seguinte função.

function semana_do_ano($dia,$mes,$ano){

$var=intval( date('z', mktime(0,0,0,$mes,$dia,$ano) ) / 7 ) + 1;

return $var;
}

Basta dar o dia, o mês e o ano, que será retornado o número da semana no ano daquele dia do mês.
A função funciona assim: é calculado quantos dias se passaram entre o dia 1 de janeiro do ano até a data fornecida, isso é realizado com o mktime e o date.
Depois, dividimos por 7 para dar o número de semanas contidos nesse tempo. intval retorna o inteiro dessa divisão, e assim, a função retorna o número de semanas que se passaram, ou seja, o número da semana no ano.

Explicando as funções usadas:
mktime ($hora,$minuto,$segundo,$mes,$dia,$ano) : Retorna o timestamp Unix correspondente para os argumentos dados. Este timestamp é um longo inteiro contendo o número de segundos entre a Era Unix (January 1 1970 00:00:00 GMT) e o tempo especificado. Argumentos podem ser omitidos da direita para esquerda; quaisquer argumentos assim omitidos serão definidos para o valor atual de acordo com a data e a hora local.

date ($formato,$timestamp) : Retorna uma string formatada de acordo com a string '$formato' dada usando o inteiro '$timestamp' dado ou a hora atual se nenhum timestamp é dado. Em outras palavras, timestamp é opcional e o padrão é o valor da função 'time()'.

intval ($var) : Retorna o valor inteiro de '$var', usando a base especificada para a conversão (o padrão é a base 10).

Referências: http://php.net

Outras dicas deste autor

Resolvendo problema de atualização do Eclipse no Debian Squeeze

Convertendo inteiros para ascii e ascii para inteiros em C

Usando repositórios do Yum no Zypper do SuSE

Magento - " Please enter a valid URL. Protocol is required (http://, https:// or ftp://) "

Bash: Não use if

Leitura recomendada

Bug do PHP

Super Scaffold - Crie aplicativos em PHP com MySQL ou PostgreSQL de forma automática

Três novos módulos para Joomla 1.5

Impressão remota usando impressora matricial

Instalação PHP7.3 no CentOS 7

  

Comentários
[1] Comentário enviado por Scoup em 05/08/2011 - 23:03h

Você pode usar o parametro "W" do date que faz exatamente isso.

Exemplo: date("W", strtotime("05/01/2011")); sendo que o date é no formato mes/dia/ano

Fonte: http://www.php.net/manual/en/function.date.php

[2] Comentário enviado por albertguedes em 06/08/2011 - 00:56h

Vale pelo complemento Scoup.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts