Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Como fazer pra pegar o número da semana do ano de acordo com uma data, mas considerando que a semana comece pelo domingo e não na segunda como é o padrão?
<?php $data = "2013-06-02";
echo date("W", strtotime($data));
?>
O código acima retorna 22 eu preciso que retorne 23.
A função strftime tem o formatador [inline]%U[/inline] que retorna o número de semanas do ano com as semanas começando em um domingo.
echo strftime("%U", strtotime($data));
Mas se você quer que essa data aí retorne 23, então além das semanas começarem ao domingos, será necessário também contar o primeiro dia do ano que não inicie em domingo como uma semana:
$data = "2013-06-2";
$year = date('Y', strtotime($data));
$corr = strftime('%U', mktime(0, 0, 0, 1, 1, $year)) === '00' ? 1 : 0;
echo strftime("%U", strtotime($data)) + $corr;Na verdade o resultado não importa (não precisa ser necessariamente 23), foi só uma forma de tentar explicar que a data 02-06-2013 - domingo tem que estar em uma semana diferente da data 01-06-2013 - sábado, que de acordo com o padrão estão na mesma semana (22). Preciso criar um relatório semanal considerando a semana como sendo de Domingo a Sábado e não de Segunda a Domingo. O
echo strftime("%U", strtotime($data));
resolveu meu problema. Obrigado.
Como não existe esta formatação nativa no PHP, a solução que eu encontrei no momento foi a seguinte:
if ($date->format('l') == 'Sunday') {