PHP meltdown strftime('%d', strtotime('now'));
Sempre usei este código para me devolver o dia actual em PHP. Sempre me foi fiel durante pelo menos três ou mais anos, em PHP 4 e 5. Depois de ontem ter feito um upgrade ao PHP puf, passou-se. Passo a explicar...
[karlus@xunga ]$ date Wed Dec 28 23:49:19 WET 2005
[karlus@xunga newsletter]$ php -r "echo strftime('%d', strtotime('now'));" 29
[karlus@xunga ]$ date Thu Dec 29 00:01:30 WET 2005
[karlus@xunga newsletter]$ php -r "echo strftime('%d', strtotime('now'));" 29
Que eu saiba o 'now' não deixou de ser um Date Input Format válido.
Depois leio isto... In PHP 5 up to 5.0.2, "now" and other relative times are wrongly computed from today's midnight. It differs from other versions where it is correctly computed from current time.
Pelo meu inglês do 5 ao 5.0.2 houve um problema que foi corrigido e ficou tudo na mesma.
Depois do tal upgrade de ontem um script que dispara às 23:45 passou a julgar que já está no dia seguinte
[karlus@xunga ]$ php -r "echo strftime('%d', strtotime('Wed Dec 28 23:00:00 WET 2005'));"
29
[karlus@xunga ]$ php -r "echo strftime('%d', strtotime('Wed Dec 28 22:59:00 WET 2005'));"
28
Que merda é esta ? Tangas de TIMEZONEs ? Que novidade passou a existir que não esteja documentada ? Arrrg....
E que tal usares a função date('d'); para resolveres o problema?
Se leres o manual:
date -- Format a local time/date
strftime -- Format a local time/date according to locale settings
date() e strftime() não são a mesma coisa. Para aquilo que queres podes e deves utilizar o date().
Já agora: "Como o PHP é um show e de versão para versão qualquer coisa é fully rewritten para trocar as voltas ao pessoal..."
Então prepara-te que com a versão 6 os teus scripts vão deixar de funcionar(tal como o novo Perl ;)).
Não percebi o "deves"... pq devo ? A mim interessam-me as 'locale settings'.
Anyway... um $day = date("d"); produzia o mesmo resultado. Bem antes e mal(sem alterar a config) agora no PHP 5.1
Do 4 para o 5 quase nada deixou de funcionar, tirando umas asneiras minhas e uma ou outra função que deixou de retornar o que retornava. Quando ao Perl, quando o 6 chegar já eu tenho filhos e eles me ensinam JAVA. :-D por Carlos Jorge Andrade a 10 Janeiro 2006 - 12:51
Tem 32 anos, é natural de Vila Nova de Famalicão mas mora no Porto desde que veio para a universidade... bem, morou. Agora já casado, está pela Maia. Anda pela internet há já uns 12 anos tendo trabalhado em vários projectos como foram o caso do Mail.pt ou no Sapo. Nos tempos livres vai tendo tempo para fazer umas brincadeiras, entre as quais o ITJobs o Lusocast o Hispanocast ou o Destakes
De resto já bloga há uns 7 anos apesar de ter perdido parte da "vida" numa mudança de hosting provider. Algumas restias ainda por aí andam... ah, e o email de contacto está no footer. Btw... job offers are welcome!
psi20 esta semana... -20% 10, Oct - 20:10 on the phone, earing other people discuss specs :) 10, Oct - 20:10 @sergio sim, eu pertenço à "elite" que paga impostos e faz pela vida. já vão sendo poucos é verdade. 10, Oct - 16:10 "foi proferida decisão de *não* atribuição do Abono de Família Pré-Natal" aka "morre longe, a pasta é para suportar bairros sociais e afins" 10, Oct - 15:10 @rcarmo he's calling everyone 'celso martinho' :> 10, Oct - 15:10 first pos-adsense paycheck arrived... toasted it on the stock market. yay! 10, Oct - 15:10 @telmodias saw it, made me buy the book ;) 10, Oct - 15:10 new books http://twitpic.com/ffl4 10, Oct - 14:10
não chateiem com os erros de Português... "the bad spelling is part of the charm". ;-)
escusado será dizer que as opiniões aqui expressas são minhas e só minhas, e não de outros ou da empresa onde trabalho
qualquer outro bitaite... ramblings at karlus.net
não, não é powered by MovableType
ou Wordpress, é powered by código meu em PHP
O conteúdo deste site não poderá ser utilizado sem a sua autorização expressa.
As imagens nele contidas são propriedade dos respectivos autores.