2017-12-28 3 views
0

Ich habe Datum in diesem Format 'm-d-Y' (31.12.2017). Ich möchte es in eine timestamp konvertieren. Normalerweise funktioniert das:Zeitstempel konvertieren von US-Datumsformat

$timestamp = strtotime($date); 

Aber wenn ich mich nicht täusche, das funktioniert mit 'd/m/Y' und nicht 'm/d/Y'.

Was ist die Lösung hier?

+0

* I Datum in diesem Format ‚m/d/Y '(31.12.2017) * - Diese Zeichenfolge stimmt nicht mit diesem Format überein. Als Referenz funktioniert 'strotime' gut mit m/d/Y-Daten, aber es ist immer sauberer,' DateTime :: createFromFormat' zu verwenden. – iainn

Antwort

2

Sie können DateTime::createFromFormat() verwenden und dann getTimestamp() auf das Objekt aufrufen:

//first create DateTime Object 
$datetime = DateTime::createFromFormat('m-d-Y', '12-31-2017'); 
//get timestamp from DateTime 
echo $datetime->getTimestamp(); 
0

Versuchen Sie diesen Code.

<?php 
$d=strtotime("12/31/2017"); 
echo "Created date is " . date("m-d-Y h:i:sa", $d); 
?> 

Output

für mehr Informationen über Datum Zeitformat lesen dann PHP Manual

+0

Haben Sie sich tatsächlich die Ausgabe angesehen, die Sie gepostet haben? Ich denke nicht, dass ** 12-31-1969 ** die richtige Antwort ist. – iainn

+0

@iainn ich habe update meine antwort –

+0

@AniketSahrawat ich habe update meine antwort –

0

Sie können Datum nach Ihrem Format ändern:

$date = '12/31/2017'; 

$timestamp = date('Y-m-d', strtotime($date)); 

$timestamp = date('d-m-Y', strtotime($date)); 

$timestamp = date('m-d-Y', strtotime($date)); 

wenn Timestamp

$timestamp = date('m-d-Y h:i:s', strtotime($date)); 
+0

Haben Sie versucht, das zu laufen? 'strtotime ('12 -31-2017 ')' gibt false zurück. – iainn

+0

es ist die Ausgabe ist falsch, überprüfen Sie diese http://sandbox.onlinephpfunctions.com/code/79eb44b6ee47dd820c8e1cc3c9867466f65badb8 –

+0

Ich habe meinen Code geändert jetzt überprüfen Sie bitte –

0

Eine andere Lösung ist die folgende:

//CONVERT the time string from the desired format 
$dateTime=DateTime::createFromFormat('m/d/Y',$date); 

echo "UNIX TIMESTAMP method 1".$date->format("U"); 
// false 
echo "UNIX TIMESTAMP method 2".$date->getTimestamp();