pixelschubser
Goto Top

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

Content-ID: 135291

Url: https://administrator.de/contentid/135291

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

Arano
Arano 05.02.2010 um 16:21:24 Uhr
Goto Top
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
Biber
Biber 05.02.2010 um 16:32:18 Uhr
Goto Top
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
48507
48507 05.02.2010 um 17:05:35 Uhr
Goto Top
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


Ne, der hat einen String in dem Format "20:04 Uhr 26.03.2006". Datenbank-Design-Fail.
Biber
Biber 05.02.2010 um 17:12:29 Uhr
Goto Top
Moin spytnik,

Zitat von @48507:
Ne, der hat einen String in dem Format "20:04 Uhr 26.03.2006". Datenbank-Design-Fail.

Ja nee... schon klar...face-wink

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
dog
dog 05.02.2010 um 18:36:39 Uhr
Goto Top
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: 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
Pixelschubser
Pixelschubser 05.02.2010 um 21:26:22 Uhr
Goto Top
Vielen Dank Max!

Genau so wie ich es wollte.