2017-09-08 3 views
0

Ich habe diese Zeichenfolge, die ein Datum: „21 März 2017“ und ich will es Unix-Zeitstempel konvertieren.von „21 März 2017“ auf Unix-Zeitstempel

echo strtotime ('21 März 2017 '); funktioniert, weil der Monat in Englisch ist.

echo strtotime ('21 maggio 2017 '); Funktioniert nicht, weil der Monat auf Italienisch ist.

Wie kann ich den Unix Zeitstempel von dieser italienischen Schnur erhalten?

Vielen Dank.

Antwort

0

Sie sollten zunächst mit str_replace Ihre Monate in Englisch konvertieren:

str_replace('marzo','march',"21 marzo 2017"); 

Dann Sie können echo strtotime('21 march 2017'); verwenden

Wenn Sie ein anderes Datum konvertieren müssen, sollten Sie eine Funktion und ein Switch-Case verwenden.

1

Aus der PHP-Dokumentation auf strtotime: http://php.net/strtotime

strtotime - Analysiert jede in englischer Textdatetime Beschreibung in einen Unix-Zeitstempel

So ist die einzige Art und Weise, was Sie fragen, um zu erreichen, ist Übersetze deinen Monat ins Englische. Wie Sie das erreichen, hängt vom Kontext Ihrer Anwendung ab.

Wenn Sie nur eine Sprache unterstützen müssen, können Sie möglicherweise ein einfaches String-Ersetzungssystem für Italienisch-Englisch-Monate erstellen.

Wenn Sie eine robustere Übersetzungsoption müssen Sie vielleicht auf etwas wie die Google Cloud Translation API aussehen wollen: https://cloud.google.com/translate/docs/

+1

Ja, ich wusste, dass strtotime nur in Englisch funktioniert. Aber ich wollte wissen, ob es eine PHP-Funktion für die Daten gibt, die mein Problem lösen, ohne den Namen des Monats wörtlich zu ersetzen. – andrea

+1

PHP hat keine eingebauten Übersetzungsdienste. – neuromatter

Verwandte Themen