sql >> Databasteknik >  >> RDS >> Mysql

Hur man konverterar från datum till unix_timestamp med javascript

Om du tillhandahåller en UTC-tidsstämpel och vill ha sekunder sedan 1/1/1970, då:

[...]

Redigera

Återbesökt mitt ursprungliga svar och gillade det inte, följande är bättre:

// 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);
}

Observera att strängen i OP inte är ISO8601-kompatibel, men ovanstående fungerar med den. Om tidsstämpeln är i den lokala tidszonen, då:

// 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);
}

Om decimalsekunder ska rymmas krävs lite mer ansträngning för att konvertera decimaldelen till ms.



  1. Postgres JSON-datatyp Rails-fråga

  2. MySQL kolumnnamn och alias

  3. php/mysql räknar inte rader i tabellen

  4. Bestämma OID för en tabell i Postgres 9.1?