24 mars, 2010

PHP/MySQL: Konvertera från datetime till sekunder från epoch

English translation:MySQL and PHP Convert datetime to seconds

Undrar du hur man kan omvandla data från en kolumn i MySQL med datetime som datatyp till antalet sekunder från "epoch" (1970-01-01)? Det undrade jag och nu tänker jag dela med mig av lösningen.

Jag gillar att programmera med PHP och utveckla dynamiska hemsidor tillsammans med MySQL som backbone. Just nu för en liten stund sedan letade jag efter en lösning för att omvandla datetime till sekunder för att enklare formatera datum med PHP funktionen date().

Notis:
Jag vet att det finns utmärkta lösningar inbyggda i MySQL men i koden jag använder nu går det inte att lösa på det sättet. Det datum som returneras från databasen är alltid i formatet yy-mm-dd tt:mm:ss

<?php
echo strtotime('2010-03-24 12:26:00') .'<br/>';
echo strtotime('2010-03-24 12:27:00') .'<br/>';

// Resultat
// 1269458760
// 1269458820

// Verifiera att det fungerar
echo date('Y-m-d H:i:s', strtotime('2010-03-24 12:27:00') ) .'<br/>';

// Resultat
// 2010-03-24 12:27:00

// Ett annat format
echo date('l F j, Y, G:i', strtotime('2010-03-24 12:27:00'));

// Resultat
// Wednesday March 24, 2010, 12:27
?>

Men för er som verkligen vill lösa det på MySQL-viset kommer här ett exempel:

// Skriver ut 1269458820
SELECT UNIX_TIMESTAMP('2010-03-24 12:27:00')

Ganska enkelt eller hur? Vill ni veta mer om funktionen strtotime() [1] i PHP så hittar ni information i den grymma dokumentationen på www.php.net [2]

Lycka till med programmeringen

Referenser
[1] www.php.net/manual/en/function.strtotime.php
[2] www.php.net

Inga kommentarer:

Välkomna till bloggen

Välkomna ska ni vara kära besökare. Jag skriver om IT för att det är kul och för att jag vill dela med mig av information och kunskap. Jag försöker hålla bloggen så kategoriserad som möjligt för att ni enklare ska hitta intressanta länkar och artiklar.