2017-05-19 1 views
0

Ich brauche mein Datum und Uhrzeit in UTC/Universal-Zeitstempel umgewandelt werden und ich bin mir nicht sicher, wie man es konvertieren (ich arbeite in EST). Ich brauche es in diesem Format: YYYY-MM-DD HH: mm: ss, die ich bereits gebaut habe diesen Code-Snippet mit:Konvertieren formatierte Javascript Zeit/Datum in Universal Time Stamp

var now = new Date(); 
var year = "" + now.getFullYear(); 
var month = "" + (now.getMonth() + 1); 

if (month.length == 1) { 
    month = "0" + month; 
} 
day = "" + now.getDate(); 
if (day.length == 1) { 
    day = "0" + day; 
} 
hour = "" + now.getHours(); 
if (hour.length == 1) { 
    hour = "0" + hour; 
} 
minute = "" + now.getMinutes(); 
if (minute.length == 1) { 
    minute = "0" + minute; 
} 
second = "" + now.getSeconds(); 
if (second.length == 1) { 
    second = "0" + second; 
} 
var timeStamp = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second; 

Das gibt so etwas wie „2017.05.19 16.23.19 "Wie würden wir es nach UTC umwandeln, wenn möglich? Danke für Ihre Hilfe.

+0

Ich bin nicht in der Regel eine Bibliotheken hier empfehlen und ich werde es nur in einem Kommentar zu tun (keine Antwort), aber die quälende zu vermeiden Schmerzen davon, könnten Sie in ['moment.js'] (http://momentjs.com/) schauen. Lassen Sie es die Formatierung für Sie übernehmen und sparen Sie sich viel Zeit und 'if' Statements ... – War10ck

Antwort

0

Im Code Erstellen Sie zunächst eine Javascript-Date-Objekt, hier ist der Aufruf

new Date(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]]); 

Dann

var isoDate = new Date('yourdatehere').toISOString(); 

für Sie So wird es

var date = new Date(year, month, day, hour, minute, second, 0); 
var isoDate = date.toISOString(); 

in Geige ich sein versuchte es zu tun. Vielleicht ist dies, wie Sie es

https://jsfiddle.net/pvu6ctsd/ wollen

0

Dies ist eine Möglichkeit, es zu tun:

var timestamp = "2017-05-19 16:23:19"; //substitute by your timestamp variable 
 
var date = new Date(timestamp.replace(' ', 'T') + 'Z'); 
 
var strUDate = date.toISOString(); 
 
console.log(strUDate);

0

Wenn Sie erstellen ein Datum in Javascript new Date() Ihr Objekt speichert, wie viele Minuten vor oder nach UTC wurde es erstellt. Sie können dies jederzeit mit der Methode getTimezoneOffset()

sehen. Wenn Sie die UTC-Zeit als Zeichenfolge verwenden möchten, gibt es nur eine Methode, die Sie verwenden können.

const date = new Date(); 
date.toUTCString(); 
// Fri, 19 May 2017 21:07:27 GMT 

Wenn Sie es in Ihrem bevorzugten Format-String wollen Sie die Zeichenfolge manuell auf eine ähnliche Art und Weise bauen müssen wie Sie. Ersetzen Sie einfach Ihre Methoden durch UTC-Methoden.

const date = new Date(); 

const year = "" + date.getUTCDate(); 
let month = "" + (date.getUTCMonth() + 1); // we add a 1 because month is 0 based 
if (month.length == 1) { 
    month = "0" + month; 
} 
let day = "" + date.getUTCDate(); 
if (day.length == 1) { 
    day = "0" + day; 
} 
let hour = "" + date.getUTCHours(); 
if (hour.length == 1) { 
    hour = "0" + hour; 
} 
let minute = "" + date.getUTCMinutes(); 
if (minute.length == 1) { 
    minute = "0" + minute; 
} 
let second = "" + date.getUTCSeconds(); 
if (second.length == 1) { 
    second = "0" + second; 

const timeStamp = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second; 

Und wenn Sie

stenografie wollen
const d = new Date(); 
const dateString = `${d.getUTCFullYear()}-${('0' + d.getUTCMonth()).slice(-2)}-${('0' + d.getUTCDate()).slice(-2)} ${('0' + d.getUTCHours()).slice(-2)}:${('0' + d.getUTCMinutes()).slice(-2)}:${('0' + d.getUTCSeconds()).slice(-2)}`; 
// 2017-04-19 23:39:28 
Verwandte Themen