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-Key: 135291

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

Printed on: April 19, 2024 at 19:04 o'clock

Member: Arano
Arano Feb 05, 2010 at 15:21:24 (UTC)
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
Member: Biber
Biber Feb 05, 2010 at 15:32:18 (UTC)
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
Mitglied: 48507
48507 Feb 05, 2010 at 16:05:35 (UTC)
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.
Member: Biber
Biber Feb 05, 2010 at 16:12:29 (UTC)
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
Member: dog
dog Feb 05, 2010 at 17:36:39 (UTC)
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
Member: Pixelschubser
Pixelschubser Feb 05, 2010 at 20:26:22 (UTC)
Goto Top
Vielen Dank Max!

Genau so wie ich es wollte.