gpt4 book ai didi

javascript - Moment.js 未返回正确的标准时间

转载 作者:行者123 更新时间:2023-12-03 06:25:28 25 4
gpt4 key购买 nike

因为我即将完成 FCC 的项目 ( https://www.freecodecamp.com/challenges/timestamp-microservice )

我无法弄清楚为什么当输入为标准时间时,它不会正确输出其 Unix 时间戳。

例如,当我输入:

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

它将输出如下:

{"unix":"28800","natural":"January 1, 1970"}

似乎存在 8 小时(28800 秒)的偏移,但即使我应用 utcOffset(),它也不会改变。

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

最佳答案

在您的代码中:

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

这正在本地时间创造一个时刻。生成的时间戳反射(reflect)了您的本地时区在 dataString 时间点相对于 UTC 的偏移量。

如果您希望输入基于 UTC,那么它将是:

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

关于javascript - Moment.js 未返回正确的标准时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38676525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com