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!
off to a @godevel dinner 04, Jul - 20:07 5 hours sleep... tired :-/ 04, Jul - 19:07 título idiota do dia "homem deu a luz uma menina" 04, Jul - 18:07 top gear episode 2 in youtube :) 04, Jul - 16:07 @carlosduarte a unica coisa dinamica era o adssense, e isso é deles. 04, Jul - 16:07 @carlosduarte no meu caso eu não pus lá nada e mesmo assim diziam que dava para sacar isto e aquilo de nao sei de onde. 04, Jul - 16:07 @carlosduarte tb ja fui mordido por isso há dias... o google anda meio burro. 04, Jul - 16:07 5 hours hacking around a mediawiki... bed now. :-( 04, Jul - 05:07
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.