我創建遵循以下規則時間戳的microService:時間戳的microService返回錯誤的時間(節點,快速,瞬間)
1)我可以傳遞一個字符串作爲參數,它會檢查查看該字符串是否包含unix時間戳或自然語言日期(例如:2016年1月1日)
2)如果是,則返回Unix時間戳和該日期的自然語言形式 。 3)如果它不包含日期或Unix時間戳,則爲這些屬性返回空值 。3)如果它不包含日期或Unix時間戳,則返回null 。
它在我以MMMM DD,YYYY格式傳遞日期時起作用,但如果我在unix時間傳遞,我會得到一些完全虛假的值。
var express = require("express");
var app = express();
var port = process.env.PORT || 3000;
var moment = require("moment");
app.listen(port, function(){
console.log("Listening on port " + port);
});
app.get("/", function(req, res){
res.writeHead(200, {"Content-Type": "text/html"});
res.end("Hi! This is a timestamp microservice. <a href='https://github.com/Humad/timestamp-microservice'>See instructions here.</a>");
});
app.get("/:date", function(req, res){
var newDate = req.params.date;
var natural = moment(newDate, "MMMM D, YYYY");
var unix = moment(newDate, "X");
console.log(natural);
console.log(unix);
if (natural.isValid() || unix.isValid()) {
if (natural.isValid()) {
newDate = natural;
} else {
newDate = unix;
}
res.json({unix: newDate.format("X"), natural: newDate.format("MMMM D, YYYY")});
} else {
res.json({unix: null, natural: null});
}
res.end();
});
哦,請讓我知道,如果我不使用正確的風格,或使用任何不良做法;我是新來的這一切
確保您傳遞了正確的unix時間戳。這是一個常見的錯誤。 X unix時間戳以秒計算,而javascript時間戳以毫秒計算。那麼也許你用毫秒來稱呼微服務? – ezakto
@ezakto我都試過;不工作:( –
我相信'moment()'構造函數將在本地時間解析日期,而unix時間戳是UTC。所以確保使用'moment.utc()'而不是'moment( )'。 – ezakto