Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So konvertieren Sie mit Javascript von Datum zu unix_timestamp

Wenn Sie einen UTC-Zeitstempel angeben und Sekunden seit dem 1.1.1970 wünschen, dann:

[...]

Bearbeiten

Ich habe meine ursprüngliche Antwort erneut besucht und mochte sie nicht. Folgendes ist besser:

// Given an ISO8601 UTC timestamp, or one formatted per the OP,
// return the time in seconds since 1970-01-01T00:00:00Z
function toSecondsSinceEpoch(s) {
  s = s.split(/[-A-Z :\.]/i);
  var d = new Date(Date.UTC(s[0], --s[1], s[2], s[3], s[4], s[5]));
  return Math.round(d.getTime()/1000);
}

Beachten Sie, dass die Zeichenfolge im OP nicht ISO8601-konform ist, aber das obige funktioniert damit. Wenn der Zeitstempel in der lokalen Zeitzone liegt, dann:

// Given an ISO8601 timestamp in the local timezone, or one formatted per the OP,
// return the time in seconds since 1970-01-01T00:00:00Z
function toSecondsSinceEpochLocal(s) {
  s = s.split(/[-A-Z :\.]/i);
  var d = new Date(s[0],--s[1],s[2],s[3],s[4],s[5]);
  return Math.round(d.getTime()/1000);
}

Sollen Dezimalsekunden untergebracht werden, ist etwas mehr Aufwand erforderlich, um den Dezimalteil in ms umzuwandeln.