PHP - MySQL Zeitformat umwandeln
Ich habe in einen meiner MySQL-Tabellen in einer Spalte in einem String folgendes Zeit-Format stehen "20:04 Uhr 26.03.2006". Wie kann ich diese mithilfe eines PHP-Scripts in Timestamp umwandeln?
Die einzigste Idee die ich hätte, ware die einzelnen Werte aus dem string suchen und die Sekunden hochrechnen. Allerdings könnte ich mir vorstellen, dass es wegen den paar Schaltjahren nicht ganz hinhaut.
Gruß
Schubser
Die einzigste Idee die ich hätte, ware die einzelnen Werte aus dem string suchen und die Sekunden hochrechnen. Allerdings könnte ich mir vorstellen, dass es wegen den paar Schaltjahren nicht ganz hinhaut.
Gruß
Schubser
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 135291
Url: https://administrator.de/contentid/135291
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
6 Kommentare
Neuester Kommentar
Moin,
PHP-Manual - mktime() berechnet dir aus Zeit- und Datumswerten den entsprechenden Timestamp.
PHP-Manual - date_parse_from_format() ermöglicht es dir unter Angabe eines Formates deine vorhandene Zeichenkette in ihre einzelnen Werte zu zerlegen.
~Arano
PHP-Manual - mktime() berechnet dir aus Zeit- und Datumswerten den entsprechenden Timestamp.
PHP-Manual - date_parse_from_format() ermöglicht es dir unter Angabe eines Formates deine vorhandene Zeichenkette in ihre einzelnen Werte zu zerlegen.
~Arano
Moin Arano,
Meinst du nicht, dass Pixelschubser nicht vielleicht einen UNIX_TIMESTAMP (Summe Sekunden seit 1.1.1970) oder ähnliches meint?
Anders wäre doch die Philosophie ...
Grüße
Biber
Meinst du nicht, dass Pixelschubser nicht vielleicht einen UNIX_TIMESTAMP (Summe Sekunden seit 1.1.1970) oder ähnliches meint?
Anders wäre doch die Philosophie ...
und die Sekunden hochrechnen. Allerdings könnte ich mir vorstellen, dass es wegen den paar Schaltjahren nicht ganz hinhaut.
... vollkommen neben der Spur.Grüße
Biber
Zitat von @Biber:
Moin Arano,
Meinst du nicht, dass Pixelschubser nicht vielleicht einen UNIX_TIMESTAMP (Summe Sekunden seit 1.1.1970) oder ähnliches
meint?
Anders wäre doch die Philosophie ...
> und die Sekunden hochrechnen. Allerdings könnte ich mir vorstellen, dass es wegen den paar Schaltjahren nicht ganz
hinhaut.
... vollkommen neben der Spur.
Grüße
Biber
Moin Arano,
Meinst du nicht, dass Pixelschubser nicht vielleicht einen UNIX_TIMESTAMP (Summe Sekunden seit 1.1.1970) oder ähnliches
meint?
Anders wäre doch die Philosophie ...
> und die Sekunden hochrechnen. Allerdings könnte ich mir vorstellen, dass es wegen den paar Schaltjahren nicht ganz
hinhaut.
... vollkommen neben der Spur.
Grüße
Biber
Ne, der hat einen String in dem Format "20:04 Uhr 26.03.2006". Datenbank-Design-Fail.
Moin spytnik,
Ja nee... schon klar...
Ich formuliere es mal um:
Bei meinen Batchen habe den Vorteil, dass ich beim Umformatieren ""20:04 Uhr 26.03.2006". in "20060326200400" oder selbst "2006-03-26 20:04:00" eigentlich gar nicht überlegen muss, wann denn neulich mal Schaltjahre waren...
Aber PHP ist da anscheinend etwas komplexer.... neumodisches Krams, GUI-basiertes..*kopfschüttel*
Grüße
Biber
Zitat von @48507:
Ne, der hat einen String in dem Format "20:04 Uhr 26.03.2006". Datenbank-Design-Fail.
Ne, der hat einen String in dem Format "20:04 Uhr 26.03.2006". Datenbank-Design-Fail.
Ja nee... schon klar...
Ich formuliere es mal um:
Bei meinen Batchen habe den Vorteil, dass ich beim Umformatieren ""20:04 Uhr 26.03.2006". in "20060326200400" oder selbst "2006-03-26 20:04:00" eigentlich gar nicht überlegen muss, wann denn neulich mal Schaltjahre waren...
Aber PHP ist da anscheinend etwas komplexer.... neumodisches Krams, GUI-basiertes..*kopfschüttel*
Grüße
Biber
Ja, wo laufen wir denn?
Ich weiß ja nicht wer hier die Idee mit den Schaltjahren ins Spiel gebracht hat (ach, der TO) aber das ist ja vollkommen daneben.
Arano hat den richtigen Tipp schon gegeben:
Grüße
Max
Ich weiß ja nicht wer hier die Idee mit den Schaltjahren ins Spiel gebracht hat (ach, der TO) aber das ist ja vollkommen daneben.
Arano hat den richtigen Tipp schon gegeben:
mktime()
<?php
$in = "20:04 Uhr 26.03.2006";
if(!preg_match('/^(\d{2}):(\d{2}) Uhr (\d{2})\.(\d{2})\.(\d{4})$/i', $in, $match))
throw new Exception("Ungültiges Format!");
$timestamp = mktime(intval($match[1]), intval($match[2]), 0, intval($match[4]), intval($match[3]), $match[5]);
var_dump($timestamp); #=> int(1143396240)
var_dump(date('Y-m-d H:i:s',$timestamp)); #=> string(19) "2006-03-26 20:04:00"
?>
Grüße
Max