Zeit in Sekunden seit 1970. Unix-Zeit und Unix-Zeitstempel (MySQL, PHP, JavaScript)

Nur für Lifeexample-Leser ist es möglich, einen Online-Shop auf Moguta.CMS mit 15 % Rabatt zu eröffnen

Unix-Zeit und Unix-Zeitstempel (MySQL, PHP, JavaScript)

Hallo, liebe Blog-Leser, in diesem Artikel möchte ich Ihnen erzählen, worum es geht Unix-Zeit Und Unix-Zeitstempel. Programmierer kombinieren diese Konzepte oft zu einem, aber das ist nicht ganz richtig. Darüber hinaus enthält der Artikel viele nützliche Hinweise zum Arbeiten mit Unix Timestamp in PHP, MySQL und JavaScript.

Warum die Unix-Zeit am 1. Januar 1970 beginnt

Tatsache ist, dass die Unix-Ära mit der Veröffentlichung des ersten UNIX-Systems beginnt. Das erste System dieser Art wurde 1969 erstellt, daher nahmen die Entwickler das Datum 1. Januar 1970 um Mitternacht UTC ( koordinierte Weltzeit).

Lassen Sie uns verstehen, wozu Unix Time und Unix Timestamp dienen, und ihnen klare Konzepte geben.

Unix-Zeitstempelist ein Zeitstempel, bei dem es sich um eine Zeichenfolge handelt, die die Anzahl der Sekunden darstellt, die seit dem 1. Januar 1970 vergangen sind.

Ich werde versuchen, ein Beispiel zu geben, um den Unterschied zwischen diesen beiden Konzepten zu verdeutlichen.

Zum Zeitpunkt des Verfassens dieses Beitrags Unix-Zeit war gleich 1346765877 .

Während Sie diese Informationen lesen, wird eine Zeitaufzeichnung ( 1346765877 ) ist bereits ein Label - Unix-Zeitstempel! Wenn wir diesen Zeitstempel in eine für Menschen lesbare Form umwandeln, erhalten wir das Datum 04.09.2012 und die Uhrzeit 17:37:57.

Ehrlich gesagt macht es meiner Meinung nach keinen besonderen Sinn, die beiden Konzepte zu trennen, aber es ist dennoch nützlich, eine Vorstellung davon zu haben, was es ist Unix-Zeit, und es ist auch nützlich zu verstehen, dass die Anzahl der maximal möglichen Sekunden, die seit 1970 vergangen sind, eine Grenze hat!

Das Ende der Unix-Ära wird im Jahr 2038 kommen

Tatsache: die maximale Binärzahl in 32-Bit-Systemen ist die Zahl 01111111 11111111 11111111 11111111 Wenn wir es in das Dezimalsystem umrechnen, erhalten wir die Zahl 2147483647.

19. Januar 2038 Um 03:14:08 wird der Moment kommen, in dem die Anzahl der Sekunden, die seit Beginn der Unix-Ära vergangen sind, das in einem 32-Bit-System verfügbare Maximum überschreitet, Zahl = 2147483647. Wenn das Bit überläuft, wird das Datum angezeigt zurücksetzen.

Es ist sehr einfach, diese Theorie anhand eines anschaulichen Beispiels zu testen:

  • Öffnen Sie einen Standard-Windows-Rechner, drücken Sie ALT+3, um ihn in die technische Ansicht umzuwandeln.
  • Stellen Sie den 4-Byte-Modus und den Dezimal-Eingabetyp ein;
  • Schreiben Sie die Nummer 2147483647;

  • Achten Sie auf die binäre Darstellung der Zahl;
  • Addiere eins zur Zahl;

  • Das Ergebnis der Addition ist eine negative Zahl!

Wenn wir weiterhin eins hinzufügen, erhalten wir einen zyklischen Abschluss.

Dieses Datum wird ab dem 19. Januar 2038 auf allen Systemen mit 32-Bit-Architektur klingeln.

Tatsächlich besteht kein Grund zur Traurigkeit, denn Computersystementwickler führen zunehmend 64-Bit-Architekturen in den breiten Einsatz ein. Glauben wir, dass sie es bis 2038 schaffen werden.

Lassen Sie uns nun über die Verwendung von Unix-Zeitstempeln sprechen php, MySQL und sogar in Javascript.

Arbeiten mit Unix-Zeitstempel

Ein sehr wichtiger Punkt bei der Arbeit mit Unix-Zeitstempeln in PHP oder MySQL ist die Notwendigkeit, die Vor- und Nachteile dieses Datumsformats klar zu verstehen.

Zum Beispiel, ZEITSTEMPEL kann nicht zur Angabe historischer Ereignisse oder Ereignisse in ferner Zukunft verwendet werden. Die gesamte Datierung beschränkt sich auf den Zeitraum von 1970 bis Anfang 2038. Wenn Sie ein Datum nach 2038 einstellen, wird es vom 32-Bit-System nicht korrekt interpretiert.

Angesichts dieser Einschränkung stellt sich eine logische Frage: „ Warum sollte man sich die Mühe machen, Datumsangaben in Sekunden darzustellen?"

Wann sollte der Unix-Zeitstempel verwendet werden?

Um die Zeit in unserem üblichen Messsystem darzustellen, sind 8 Bytes erforderlich, und für einen Unix-Zeitstempel sind es halb so viel – 4 Bytes.

Die Einsparung von Datenvolumen ist meiner Meinung nach der wichtigste und unbestreitbare Vorteil der Verwendung von Unix Time.

Darüber hinaus stehen Ihnen beim Arbeiten eine Reihe nützlicher Nuancen zur Verfügung UNIX-Zeitstempel in MySQL. Und da alle Informationen auf dem Datenbankserver gespeichert werden müssen und dies wiederum eine Reihe von Vorteilen bei der Arbeit mit Unix-Zeitstempeln mit sich bringt, kann die Entscheidung für Unix-Zeitstempel durch die folgenden Bestimmungen richtig begründet werden.

Für die Arbeit mit dem Unix-Zeitformat stellt MySQL einen entsprechenden Timestamp-Datentyp bereit, durch dessen Installation wir sofort einen nützlichen Vorteil gegenüber Standardformaten erhalten DATUM Und TERMINZEIT. Der Vorteil besteht darin, dass beim Hinzufügen eines neuen Datensatzes zu einer Tabelle die Spalte mit diesem Datentyp automatisch gefüllt wird. Dadurch können wir nicht nur die Datenmenge, sondern auch die CPU-Zeit des Webservers einsparen.

Um dem Wort Taten folgen zu lassen, stellen wir folgende Aufgabe: Bei der Registrierung eines neuen Benutzers im System müssen Sie das Datum seiner Aufnahme in die Datenbank eingeben.

Wenn der Typ des Feldes, in dem das Datum in der Tabelle gespeichert ist, lautet TERMINZEIT, dann sieht die Anfrage vom PHP-Skript etwa so aus:

Die Vorteile liegen auf der Hand!

Es gibt auch ein Minus: Bei mehreren Feldern vom Typ TIMESTAMP wird nur das erste automatisch aktualisiert.

Ist es sinnvoll, INT statt Zeitstempel zu verwenden?

Viele Programmierer verwenden beim Arbeiten mit Unix-Zeitstempeln das Ganzzahlformat int(11) . Dies ist eine völlig irrationale Herangehensweise an das Problem, da MySQL viele nützliche Funktionen für den Zeitstempeltyp bereitstellt, die sich auf die Geschwindigkeit der Arbeit damit auswirken. Durch die Speicherung des Zeitstempels in INT entziehen wir uns daher jeglicher Serverunterstützung für dieses Format. Dies entspricht in etwa dem Speichern einer ID im Typ varchar(11).

Es gibt jedoch einen Grund für die Beibehaltung Unix-Zeitstempel zu INT. Bei der Übertragung einer Datenbank zwischen verschiedenen DBMS kann es zu einem Typkonflikt kommen, d. h. Bei einem der DBMS ist der Zeitstempeltyp möglicherweise unbekannt. In diesem Fall ist die Verwendung von int von Vorteil, da dieses Format in allen DBMS verfügbar ist.

Kurze Beschreibung der MySQL-Kalendertypen

ZEITSTEMPEL- Datentyp zum Speichern von Datum und Uhrzeit. Die Daten werden als Anzahl der Sekunden gespeichert, die seit Beginn der „Unix-Ära“ vergangen sind. Wertebereich: 01.01.1970 00:00:00 - 31.12.2038 00:00:00. Belegt 4 Bytes.

DATUM- Datentyp zum Speichern von Datumsangaben. Wertebereich: 1000-01-01 - 9999-12-31. Belegt 3 Bytes.

TERMINZEIT- Datentyp zum Speichern von Datum und Uhrzeit. Wertebereich: 1000-01-01 00:00:00 - 9999-12-31 00:00:00. Es benötigt 8 Bytes und wird als Zahl YYYYMMDDHHMMSS./p> gespeichert

JAHR- Datentyp zur Speicherung des Jahres. Wertebereich: 1901 - 2155. Belegt 1 Byte.

ZEIT- Datentyp zum Speichern der Zeit. Wertebereich: −828:59:59 - 828:59:59. Belegt 3 Bytes.

Datum in Unix konvertieren

Es ist an der Zeit, einige nützliche Funktionen zum Konvertieren von Datumsangaben zu veröffentlichen Unix-Zeitstempel und zurück von Unix-Zeit an einem lesbaren Datum.

So erhalten Sie die aktuelle UNIX-Zeit

  • PHP:

    Zeit();

  • JavaScript:

    Math.round(new Date().getTime()/1000.0);

  • MySQL:

    SELECT unix_timestamp(now() );

Was ist Unix-Zeit oder Unix-Epoche (Unix-Epoche oder Unix-Zeit oder POSIX-Zeit oder Unix-Zeitstempel)?

UNIX-Zeit oder POSIX-Zeit ist eine Zeitkodierungsmethode, die in UNIX und anderen POSIX-kompatiblen Betriebssystemen übernommen wird.
Als Ausgangspunkt gilt Mitternacht (UTC) vom 31. Dezember 1969 bis 1. Januar 1970, die Zeit ab diesem Zeitpunkt wird als „UNIX-Ära“ (engl. Unix Epoch) bezeichnet.
Die UNIX-Zeit stimmt mit der UTC überein, insbesondere wenn UTC-Schaltsekunden deklariert werden, werden die entsprechenden Sekundenzahlen wiederholt.
Die Methode der Speicherung der Zeit in Form einer Anzahl von Sekunden ist sehr praktisch für den (sekundengenauen) Vergleich von Datumsangaben sowie für die Speicherung von Datumsangaben: Bei Bedarf können sie in jedes für Menschen lesbare Format konvertiert werden. Da Datum und Uhrzeit in diesem Format auch nur sehr wenig Platz beanspruchen (4 oder 8 Bytes, abhängig von der Größe des Maschinenworts), ist es sinnvoll, es zum Speichern großer Datumsmengen zu verwenden. Wenn sehr häufig auf Datumselemente wie Monatszahlen usw. zugegriffen wird, kann es zu Leistungseinbußen kommen. In den meisten Fällen ist es jedoch effizienter, die Zeit als einzelnen Wert statt als Sammlung von Feldern zu speichern.

Konvertieren der Unix-Epoche in ein für Menschen lesbares Datum


Unix-Start- und Enddatum im Jahr, Monat oder Tag


Konvertieren von Sekunden in Tage, Stunden und Minuten


So erhalten Sie Unix-Zeit in...

PerlZeit
PHPZeit()
RubinTime.now (oder Time.new). Auszugeben: Time.now.to_i
PythonZuerst die Zeit importieren, dann time.time()
Javalong epoch = System.currentTimeMillis()/1000;
Microsoft .NET C#epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
VBScript/ASPDateDiff("s", "01/01/1970 00:00:00", Now())
ErlangCalendar:datetime_to_gregorian_seconds(calendar:now_to_universal_time(now()))-719528*24*3600.
MySQLSELECT unix_timestamp(now())
PostgreSQLSELECT extract(epoch FROM now());
SQL ServerSELECT DATEDIFF(s, „1970-01-01 00:00:00“, GETUTCDATE())
JavaScriptMath.round(new Date().getTime()/1000.0) getTime() gibt die Zeit in Millisekunden zurück.
Unix/LinuxDatum +%s
Anderes BetriebssystemBefehlszeile: perl -e "print time" (Wenn Perl auf Ihrem System installiert ist)

Konvertieren des Datums in die Unix-Zeit in ...

PHPmktime( Uhr, Protokoll, Sekunden, Monat, Tag, Jahr)
RubinZeit.local( Jahr, Monat, Tag, Uhr, Protokoll, Sekunden, verwenden) (oder Time.gm für GMT/UTC-Ausgabe). Zur Ausgabe von add.to_i
PythonZuerst die Zeit importieren, dann int(time.mktime(time.strptime("2000-01-01 12:34:00", "%Y-%m-%d %H:%M:%S")))
Javalong epoch = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("01/01/1970 01:00:00");
VBScript/ASPDateDiff("s", "01/01/1970 00:00:00", Datumsfeld)
MySQLSELECT unix_timestamp( Zeit) Zeitformat: JJJJ-MM-TT HH:MM:SS oder JJMMTT oder JJJJMMTT
PostgreSQLSELECT extract(epoch FROM date("2000-01-01 12:34"));
Mit Zeitstempel: SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE „2001-02-16 20:38:40-08“); Mit Intervall: SELECT EXTRACT(EPOCH FROM INTERVAL „5 Tage 3 Stunden“);
SQL ServerSELECT DATEDIFF(s, „1970-01-01 00:00:00“, Datumsfeld)
Unix/LinuxDatum +%s -d"1. Januar 1980 00:00:01"

Konvertieren von Unix-Zeiten in für Menschen lesbare Daten ...

PHPDatum( Format, Unix-Zeit);
RubinZeit.at( Unix-Zeit)
PythonZuerst die Zeit importieren, dann time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime( Unix-Zeit)) Ersetzen Sie time.localtime durch time.gmtime für das GMT-Datum.
JavaString date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date ( Unix-Zeit*1000));
VBScript/ASPDateAdd("s", Unix-Zeit, "01/01/1970 00:00:00")
PostgreSQLZEITSTEMPEL MIT ZEITZONE „epoch“ + AUSWÄHLEN Unix-Zeit* INTERVALL „1 Sekunde“;
MySQLfrom_unixtime( Unix-Zeit, optional, Ausgabeformat) Standardausgabeformat YYY-MM-DD HH:MM:SS
SQL ServerDATEADD(s, Unix-Zeit, "1970-01-01 00:00:00")
Microsoft Excel=(A1 / 86400) + 25569 Das Ergebnis wird in der GMT-Zeitzone vorliegen. Für andere Zeitzonen: =((A1 +/- Zeitunterschied für die Zone) / 86400) + 25569.
LinuxDatum -d @1190000000
Anderes BetriebssystemBefehlszeile: perl -e "print scalar(localtime( Unix-Zeit))“ (Wenn Perl installiert ist) Ersetzen Sie „localtime“ durch „gmtime“ für die GMT/UTC-Zeitzone.

Wofür wird das Tool „Unixtime Converter“ verwendet?

Dieses Tool wird vor allem für Webmaster nützlich sein, die ständig mit großen Datenmengen zu tun haben oder in ihrer Arbeit häufig auf deren Elemente zurückgreifen. Mit dem Tool „Unixtime Converter“ können Sie die Unix-Zeit ganz einfach in ein benutzerfreundliches Datum umwandeln (und umgekehrt), die aktuelle Unix-Epochenzeit ermitteln und auch die Unix-Zeit in verschiedenen Programmiersprachen, DBMS und Betriebssystemen abrufen.

Was ist Unix-Zeit?

Die Unix-Ära (Unix-Epoche) begann in der Nacht vom 31. Dezember 1969 auf den 1. Januar 1970. Dieses Datum wurde als Ausgangspunkt für die „Computerzeit“ verwendet, die in Sekunden berechnet wird und sehr wenig Speicherplatz beansprucht – nur 4 oder 8 Bytes. Mit dieser Kodierungsmethode können Programmierer jedes Datum in einer einzigen Zahl „verstecken“ und es einfach wieder in ein für Benutzer verständliches Format zurückwandeln.

Die Unix-Zeit (auch Unix-Zeit oder POSIX-Zeit genannt) ist in verschiedenen Betriebssystemen und Programmiersprachen praktisch zu verwenden, da sie als einzelner Wert angezeigt wird und nicht als eine bestimmte Anzahl von Feldern, die Platz beanspruchen. Darüber hinaus entspricht die UNIX-Zeit vollständig dem UTC-Standard (auch in Schaltjahren) – in diesem Fall werden die entsprechenden Sekundenwerte einfach wiederholt.

Unix-Terminologie

Ein paar Worte zu den Begriffen.

Also, Unix-Zeit(oder POSIX-Zeit) ist die Anzahl der Sekunden, die seit Mitternacht am 1. Januar 1970 bis heute vergangen sind.

Unix-Zeitstempel(Zeitstempel) ist eine „feste“ Zeit, also ein bestimmtes Datum, das in eine Zahl eingeprägt ist.

koordinierte Weltzeit(Universal Coordinated Time) ist die koordinierte Weltzeit, die am Nullmeridian „fest“ ist und von der aus geografische Zeitzonen gezählt werden.

Wie „langlebig“ ist dieses System?

In nur wenigen Jahrzehnten, nämlich am 19. Januar 2038 um 03:14:08 UTC, wird die Unix-Zeit den Wert 2147483648 erreichen, und Computersysteme können diese Zahl als negativ interpretieren. Der Schlüssel zur Lösung dieses Problems besteht darin, eine 64-Bit-Variable (anstelle einer 32-Bit-Variable) zum Speichern der Zeit zu verwenden. In diesem Fall würde der Vorrat an Zahlenwerten der Unix-Zeit der Menschheit weitere 292 Milliarden Jahre reichen. Nicht schlecht, oder?

Unix-Zeit ist eine für alle

Wenn Sie in London oder San Francisco leben und Ihre Freunde in Moskau leben, können Sie mit der Unix-Zeit „auf Ihre Uhren schauen“: Dieses System ist derzeit für die ganze Welt gleich. Natürlich, wenn die Uhrzeit auf den Servern richtig eingestellt ist. Und zwar mithilfe eines Tools „Unixtime-Konverter“ Diese Konvertierung dauert nur den Bruchteil einer Sekunde.

Weil Da in Dieselkraftstoff keine integrierten Tools vorhanden sind, erstellen wir das folgende Skript: #!/bin/sh truss date 2>&1 |grep ^time |awk "(print $3;)" exit $? oder nawk "BEGIN(print srand())" oder in Perl: perl -e "print time, "\n";" Finden Sie das Dateiänderungsdatum heraus: truss -v lstat -t lstat ls -l file.txt 2>&1 1>/dev/null | grep "mt\ =\ " | awk „(print $9;)“

So erhalten Sie Unix-Zeit in...

Perl Zeit
PHP Zeit()
Rubin Time.now (oder Time.new). Auszugeben: Time.now.to_i
Python Zuerst die Zeit importieren, dann time.time()
Java long epoch = System.currentTimeMillis()/1000;
Microsoft .NET C# epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
VBScript/ASP DateDiff("s", "01/01/1970 00:00:00", Now())
Erlang Calendar:datetime_to_gregorian_seconds(calendar:now_to_universal_time(now()))-719528*24*3600.
MySQL SELECT unix_timestamp(now())
PostgreSQL SELECT extract(epoch FROM now());
SQL Server SELECT DATEDIFF(s, „1970-01-01 00:00:00“, GETUTCDATE())
JavaScript Math.round(new Date().getTime()/1000.0) getTime() gibt die Zeit in Millisekunden zurück.
Unix/Linux Datum +%s
Anderes Betriebssystem Befehlszeile: perl -e "print time" (Wenn Perl auf Ihrem System installiert ist)

Konvertieren des Datums in die Unix-Zeit in ...
PHP mktime( Uhr, Protokoll, Sekunden, Monat, Tag, Jahr)
Rubin Zeit.local( Jahr, Monat, Tag, Uhr, Protokoll, Sekunden, verwenden) (oder Time.gm für GMT/UTC-Ausgabe). Zur Ausgabe von add.to_i
Python Zuerst die Zeit importieren, dann int(time.mktime(time.strptime("2000-01-01 12:34:00", "%Y-%m-%d %H:%M:%S")))
Java long epoch = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("01/01/1970 01:00:00");
VBScript/ASP DateDiff("s", "01/01/1970 00:00:00", Datumsfeld)
MySQL SELECT unix_timestamp( Zeit) Zeitformat: JJJJ-MM-TT HH:MM:SS oder JJMMTT oder JJJJMMTT
PostgreSQL SELECT extract(epoch FROM date("2000-01-01 12:34"));
Mit Zeitstempel: SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE „2001-02-16 20:38:40-08“); Mit Intervall: SELECT EXTRACT(EPOCH FROM INTERVAL „5 Tage 3 Stunden“);
SQL Server SELECT DATEDIFF(s, „1970-01-01 00:00:00“, Datumsfeld)
Unix/Linux Datum +%s -d"1. Januar 1980 00:00:01"

Konvertieren von Unix-Zeiten in für Menschen lesbare Daten ...
PHP Datum( Format, Unix-Zeit);
Rubin Zeit.at( Unix-Zeit)
Python Zuerst die Zeit importieren, dann time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime( Unix-Zeit)) Ersetzen Sie time.localtime durch time.gmtime für das GMT-Datum.
Java String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date ( Unix-Zeit*1000));
VBScript/ASP DateAdd("s", Unix-Zeit, "01/01/1970 00:00:00")
PostgreSQL ZEITSTEMPEL MIT ZEITZONE „epoch“ + AUSWÄHLEN Unix-Zeit* INTERVALL „1 Sekunde“;
MySQL from_unixtime( Unix-Zeit, optional, Ausgabeformat) Standardausgabeformat YYY-MM-DD HH:MM:SS
SQL Server DATEADD(s, Unix-Zeit, "1970-01-01 00:00:00")
Microsoft Excel =(A1 / 86400) + 25569 Das Ergebnis wird in der GMT-Zeitzone vorliegen. Für andere Zeitzonen: =((A1 +/- Zeitunterschied für die Zone) / 86400) + 25569.
Linux Datum -d @1190000000
Anderes Betriebssystem Befehlszeile: perl -e "print scalar(localtime( Unix-Zeit))“ (Wenn Perl installiert ist) Ersetzen Sie „localtime“ durch „gmtime“ für die GMT/UTC-Zeitzone.
UNIX-Zeit oder POSIX-Zeit ist eine praktische Zeitkodierungsmethode, die als Hauptmethode in UNIX und anderen POSIX-kompatiblen Betriebssystemen übernommen wird.
Die Zeit selbst wird in verstrichenen Sekunden seit Beginn der Unix-Epoche aufgezeichnet, die vom 31. Dezember 1969 bis zum 1. Januar 1970 um Mitternacht (UTC) begann. Die Unix-Zeit stimmt mit UTC überein, insbesondere wenn UTC-Schaltsekunden deklariert werden – die entsprechenden Sekundenzahlen werden wiederholt.

Diese Speichermethode wird von vielen Systemen unterstützt und ist sehr praktisch; Datumsvergleiche sind beispielsweise sekundengenau, die Speicherung ist kompakt und lässt sich leicht in jedes für Menschen lesbare Format konvertieren. Natürlich gibt es auch Nachteile, beispielsweise beim häufigen Zugriff auf Datumselemente, wie die Monatszahl etc. In den meisten Fällen wird die Effizienz jedoch dadurch erreicht, dass das Datum als einzelner Wert und nicht als Sammlung von Feldern gespeichert wird.

UnixTime in verschiedenen Umgebungen abrufen:

PerlZeit
PHPZeit()
RubinTime.now (oder Time.new). Auszugeben: Time.now.to_i
PythonZuerst die Zeit importieren, dann time.time()
Javalong epoch = System.currentTimeMillis()/1000;
Microsoft .NET C#epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
VBScript/ASPDateDiff("s", "01/01/1970 00:00:00", Now())
ErlangCalendar:datetime_to_gregorian_seconds(calendar:now_to_universal_time(now()))-719528*24*3600.
MySQLSELECT unix_timestamp(now())
PostgreSQLSELECT extract(epoch FROM now());
SQL ServerSELECT DATEDIFF(s, „1970-01-01 00:00:00“, GETUTCDATE())
JavaScriptMath.round(new Date().getTime()/1000.0) getTime() gibt die Zeit in Millisekunden zurück.
Unix/LinuxDatum +%s
Anderes BetriebssystemBefehlszeile: perl -e "print time" (Wenn Perl auf Ihrem System installiert ist)

Wie konvertiere ich ein reguläres Datum in UnixTime?

PHPmktime( Uhr, Protokoll, Sekunden, Monat, Tag, Jahr)
RubinZeit.local( Jahr, Monat, Tag, Uhr, Protokoll, Sekunden, verwenden) (oder Time.gm für GMT/UTC-Ausgabe). Zur Ausgabe von add.to_i
PythonZuerst die Zeit importieren, dann int(time.mktime(time.strptime("2000-01-01 12:34:00", "%Y-%m-%d %H:%M:%S")))
Javalong epoch = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").parse("01/01/1970 01:00:00");
VBScript/ASPDateDiff("s", "01/01/1970 00:00:00", Datumsfeld)
MySQLSELECT unix_timestamp( Zeit) Zeitformat: JJJJ-MM-TT HH:MM:SS oder JJMMTT oder JJJJMMTT
PostgreSQLSELECT extract(epoch FROM date("2000-01-01 12:34"));
Mit Zeitstempel: SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE „2001-02-16 20:38:40-08“);Mit Intervall: SELECT EXTRACT(EPOCH FROM INTERVAL „5 Tage 3 Stunden“);
SQL ServerSELECT DATEDIFF(s, „1970-01-01 00:00:00“, Datumsfeld)
Unix/LinuxDatum +%s -d"1. Januar 1980 00:00:01"

Lassen Sie uns UnixTime-Sekunden in ein klares, für Menschen lesbares Datum zurückwandeln:

PHPDatum( Format, Unix-Zeit);
RubinZeit.at( Unix-Zeit)
PythonZuerst die Zeit importieren, dann time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.localtime( Unix-Zeit)) Ersetzen Sie time.localtime durch time.gmtime für das GMT-Datum.
JavaString date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date ( Unix-Zeit*1000));
VBScript/ASPDateAdd("s", Unix-Zeit, "01/01/1970 00:00:00")
PostgreSQLZEITSTEMPEL MIT ZEITZONE „epoch“ + AUSWÄHLEN Unix-Zeit* INTERVALL „1 Sekunde“;
MySQLfrom_unixtime( Unix-Zeit, optional, Ausgabeformat) Standardausgabeformat YYY-MM-DD HH:MM:SS
SQL ServerDATEADD(s, Unix-Zeit, "1970-01-01 00:00:00")
Microsoft Excel=(A1 / 86400) + 25569 Das Ergebnis wird in der GMT-Zeitzone vorliegen. Für andere Zeitzonen: =((A1 +/- Zeitunterschied für die Zone) / 86400) + 25569.
LinuxDatum -d @1190000000
Anderes BetriebssystemBefehlszeile: perl -e "print scalar(localtime( Unix-Zeit))“ (Wenn Perl installiert ist) Ersetzen Sie „localtime“ durch „gmtime“ für die GMT/UTC-Zeitzone.

Die Informationen wurden größtenteils gestohlen von:

Dieses Tool wird benötigt, um ein Datum aus dem Unix-TimeStamp-Format in ein für Menschen lesbares Datum zu konvertieren und umgekehrt.

Was ist Unix-Zeit und wofür wird sie verwendet? Um zu verstehen, warum dies verwendet wird, beginne ich mit dem allgemeinen Konzept der Unix-Zeit.

Unix-Zeit (oder TimeStamp, was ins Russische übersetzt „Zeitstempel“ bedeutet und dieselbe Bedeutung hat) ist die Anzahl der Sekunden, die seit dem 1. Januar 1970 vergangen sind. Das heißt, der Unix-TimeStamp war zum Zeitpunkt des 01.01.1970 00:00:00 gleich 0. Nach 2 Minuten (120 Sekunden) war die Unix-Zeit bereits 120. Beispielsweise einen Tag später (01.02.1970). /1970 00:00:00) war die Unix-Zeit bereits 86400, da 60*60*24=86400 Sekunden vergangen sind. Jetzt ist der Unix-Zeitstempel bereits 1561815370 und die Zahl wächst ständig, da die Sekunden ständig ticken.

Aber warum sollte man es verwenden? Die Sache ist, dass Unix TimeStamp bequem zum Speichern und Bearbeiten von Daten beim Programmieren verwendet werden kann. Ich werde nicht auf Details eingehen, aber kurz gesagt: Eine Zahl lässt sich viel bequemer zählen und vergleichen als eine Zeichenfolge mit „linken“ Zeichen. Aus diesem Grund verwenden die meisten Entwickler Unix TimeStamp, um in ihren Projekten mit Datumsangaben zu arbeiten, und in der Datenbank sehen wir oft eine sehr große Zahl im Feld „Datum“, die überhaupt nicht wie ein Datum aussieht.

Hier kommt dieses Tool zum Einsatz. Damit können Sie diese „große Zahl aus der Datenbank“ ganz einfach in ein für Menschen lesbares Datum übersetzen. Darüber hinaus können Sie sogar das Gegenteil tun und jedes Datum in einen Unix-Zeitstempel umwandeln. Dies sind die Fähigkeiten, mit denen dieser Konverter ausgestattet ist.

Problem von 2038

Wie ich bereits sagte, die Nummer Unix-Zeitstempel mit jeder Sekunde erhöht sie sich um 1. Früher oder später muss die Grenze dieser Zahl kommen und sie wird im Jahr 2038 sein. Die Sache ist die, dass die Höchstzahl in den zu Beginn des 21. Jahrhunderts üblichen 32-Bit-Betriebssystemen 2 31 beträgt. Dies ist die Zahl, die Unix TimeStamp im Jahr 2038 erreichen wird.

→ Eine Lösung für dieses Problem wurde bereits gefunden. Um sicherzustellen, dass Websites im Jahr 2038 nicht aufhören, die Zeit korrekt zu erfassen, reicht es aus, auf dem Hosting-/VDS-/dedizierten Server ein 64-Bit-Betriebssystem und kein 32-Bit-Betriebssystem zu verwenden. Mit der rasant wachsenden Leistungsfähigkeit von Computern und der Senkung ihrer Kosten deutet alles darauf hin, dass bis 2038 die überwiegende Mehrheit der Dienste im Bereich der Bereitstellung von Speicherplatz für eine Website auf Basis eines 64-Bit-Betriebssystems bereitgestellt wird. Übrigens wird uns ein solches Problem in einem 64-Bit-System mindestens 292 Milliarden Jahre lang nicht betreffen, was völlig ausreichend ist, um darüber nachzudenken Problem von 2038 gelöst.

mob_info