Funções para usar as datas discordianas em páginas PHP
Se você já entrou no 1001 Gatos de Schrödinger e prestou atenção, já notou comentários feitos em 51/Caos/3174, às 04:77:67. A numeração discordiana, conforme especificado na ISO 55555, segue padrões restritos em relação ao formato de data e hora, conforme explicado no Principia Discordia e exposto pelo Rev. Peterson Cekemp neste post. O recente sistema de contagem de horas foi criado pelo Santaum.
O problema é que muitos discordianos sofrem porque não conseguem usar este sistema nos seus sites, blogs ou fnords. Este post ilustrará de maneira simples como usar as funções de data e horário discordiano na vida real e no Wordpress, com minhas funções que estão licenceadas sob esta Creative Commons pelo 1001 Gatos de Schrödinger. Os códigos estão disponíveis para download láaaa embaixo...
Como funciona a função ddate
O Linux vem com um comando super útil chamado ddate, que serve para converter uma data do formato gregoriano para o discordiano. Sem argumento, ele retorna a data de hoje. Com argumento (dia mês ano -- gregorianos) ele retorna essa data discordiana.
tiago@flick ~ $ ddate Today is Sweetmorn, the 51st day of Chaos in the YOLD 3174 tiago@flick ~ $ ddate 06 07 1990 Boomtime, Confusion 41, 3156 YOLD
ddate também aceita um argumento que é o formato da data.
tiago@flick ~ $ ddate +Dia\ %d Dia 51
Minha função ddate (que gera a data mostrada embaixo de cada título de post no 1001 Gatos) é simples: ela executa via shell (shell_exec) este comando e traduz o mês para o português.
Como funciona a função dtime
A partir de um horário convencional, ela usa o raciocínio matemático explicado pelo Rev. Peterson (não vou explicar novamente) e retorna o novo horário.
Wordpress
O Wordpress usa quatro funções que vamos precisar conhecer aqui:
- the_time() - imprime horário
- the_date() - imprime data
- get_the_time() - retorna horário
- get_the_date() - retorna data
Queremos sempre retornar a hora/data, então as primeiras duas são inúteis porque elas só imprimem (só listei porque você deve procurá-las no seu template para substituir).
Devemos declarar nossas funções ddate() e dtime() num arquivo que seja incluído por todas as páginas (crie um functions.php ou use o header.php -- essa é a solução do 1001 Gatos). Então nas páginas que precisamos do horário e data discordianas, basta substituir:
- the_time() por echo dtime(get_the_time("H:i:s"))
- the_date() por echo ddate(get_the_date("d m Y"))
E é só! Parabéns, você agora está usando datas discordianas. Se não deu certo, sinta-se livre para tirar dúvidas nos comentários.
No 1001 Gatos, a data nos comentários é mostrada de forma abreviada (dia/mês/ano). Pra fazer isso é só modificar o formato da data no shell_exec(), deixando a função como ddate2() que está disponível para download também aí embaixo.
Download
Aqui está: ddates.phps (menos de 1kb, UTF-8)
Technorati Tags: discordianismo, éris, discordia, ddate, linux, php, wordpress, software livre
Compare Preços de: iPod, home theater, plasma, lcd, câmeras digitais, games, ps3


Muito interessante Tiago,
Pelo menos, conforme conversa no GMAIL, o comando dtime funcionou.
Agora, vamos ver o lance do ddate por outra via que não seja aquela do shell_exec.
Tiago,
Lembrando, este sistema de horários não foi inventado por mim. Foi apenas pensado, apenas uma idéia, hehehe… Este sistema de contagem já existe…
Bom dia
Meu assunto nao tens nada haver com o topico só que estou em apuros e quero ver se voce pode me ajudar tenho um notebook acer 3100-1561 no qual eu instalo windows xp pro original e trava já troquei memoria hd e nada chega em uma parte que trava e nao vai adiante voce já viu algo parecido pois estou sem a garantia deu a mesma coisa quando comprei e foi pra garantai e ficou tres meses com a acer pode? é fogo se puder me ajudar agradeço.
Um abraço
Juliana
Humm, um problema!
Coloquei as funções no functions.php e depois, quando tentei modificar a single.php (single post) com o neógicio get_the_time e tal, a resposta foi a seguinte:
Warning: Cannot modify header information - headers already sent by (output started at /home/orkutcid/public_html/wordpress/wp-content/themes/blackmagic/functions.php:11) in /home/orkutcid/public_html/wordpress/wp-admin/theme-editor.php on line 55
E aí? =/
Sua linha 11 no functions.php deve estar em branco ou ter alguma coisa fora das tags do PHP (< ? php e ?>).
Bom, no functions.php não deu pra colocar de nenhum jeito, aí coloquei no Header. Coloquei os códigos pra aparecer o tempo e a data no ’single post’ do tema mas ele aparece assim:
Post escrito em às
Depois de ‘em’ era pra estar a data, depois de ‘ás’, o tempo.