2016-07-30 22 views
0

Als ich das Projekt von FCC (https://www.freecodecamp.com/challenges/timestamp-microservice)Moment.js nicht korrekt Standardzeit

Ich bin Abschluss bin fast Rückkehr, warum nicht in der Lage, um herauszufinden, wenn die Eingabe in Standardzeit ist, wird es seine Unix nicht ausgegeben Timestamp korrekt.

Zum Beispiel, wenn ich schreibe:

http://localhost:3000/January%201%201970 

gibt er als so:

Es scheint, wie es eine von 8 Stunden (28.800 Sekunden versetzt ist, aber selbst wenn ich mich bewerben ändern die UTCOFFSET(), ist es nicht.

var express = require('express'); 
 
var path = require('path') 
 
var app = express(); 
 
var moment = require('moment') 
 
var port = 3000; 
 
//homepage 
 
app.get('/', function(req, res) { 
 
    var fileName = path.join(__dirname, 'index.html'); 
 
    res.sendFile(fileName, function (err) { 
 
    if (err) {console.error(err)} 
 
    console.log('This is the homepage') 
 
    }); 
 
}); 
 

 
//input of the page 
 
app.get('/:dataString', function(req, res) { 
 
    var dataString = req.params.dataString; 
 
    var output; 
 
    //Using regex, checks if the dataString has only number characters 
 
    if(/^[0-9]*$/.test(dataString)){ 
 
    output = moment(dataString, "X") 
 
    } else{ 
 
    console.log(dataString) 
 
    output = moment(dataString, "MMMM DD YYYY") 
 
    console.log(output.utc().format("X")) 
 
    } 
 

 
    if (output.isValid()){ 
 
    res.json({ 
 
     unix: output.utc().format("X"), 
 
     natural: output.utc().format("MMMM D, YYYY") 
 
    }); 
 
    } else{ 
 
    res.json({ 
 
     unix: 'null', 
 
     natural: 'null' 
 
    }); 
 
    } 
 
}) 
 

 
app.listen(port,function(){ 
 
    console.log("turn on. Port is: ", port) 
 
})

Antwort

1

In Ihrem Code:

output = moment(dataString, "MMMM DD YYYY") 

Dies wird einen Moment in Ortszeit zu schaffen. Der resultierende Zeitstempel gibt den Offset Ihrer lokalen Zeitzone von UTC zum Zeitpunkt Ihrer dataString an.

Wenn Sie die Eingabe werden basierend auf UTC, dann wäre es wollte:

output = moment.utc(dataString, "MMMM DD YYYY") 
+0

Awesome! Das hat den Trick gemacht – Alejandro