Я написал ниже микросервис для преобразования метки времени unix в формат, подобный Dec 01,2017, и наоборот, и развернул здесь отметка времени
Есть ли у них лучший способ сделать это без стороннего NPM?
var path = require('path');
var express = require('express');
var app = express();
var bodyparser = require('body-parser');
app.route('/:date')
.get(function(req, res) {
// res.sendFile(process.cwd() + '/views/index.html');
var unix = null,
naturaldate = null;
//console.info(parseInt(timestamp),timestamp)
let timestamp = req.params.date;
if (!isNaN(timestamp)) {
let parsetime = new Date(parseInt(timestamp))
console.info(parsetime);
if (parsetime == 'Invalid Date') {
console.info("got invalid date")
send_response(null, null, res);
}
let parsenaturaldate = parsetime.toDateString().split(" ").slice(1);
let year = parsenaturaldate.splice(2, 0, ',');
year = parsenaturaldate.splice(1, 0, ' ')
naturaldate = parsenaturaldate.join("")
console.info(naturaldate)
unix = parseInt(timestamp)
send_response(unix, naturaldate, res);
} else {
unix = Date.parse(timestamp);
if (!isNaN(unix))
naturaldate = timestamp
else
send_response(null, null, res);
send_response(unix, naturaldate, res);
}
})
function send_response(unix, naturaldate, res) {
console.info(unix, naturaldate)
res.json({
"unix": unix,
"natural": naturaldate
})
}
app.listen(8083 || process.env.PORT, () => {
console.info("server is listening")
})
Может, хочешь date.toISOString().replace(/^(....)-(..)-(..).*$/, '$2 $3,$1')?
Я хочу преобразовать метку времени в MM DD, YYYY без npm. Ex- timestamp 1512086400000 должен показать свое значение 01 декабря 2017 г. В настоящее время я делаю как новую дату (1512086400000), которая возвращает Fri Dec 01 2017 05:30:00 GMT + 0530 (стандартное индийское время), я использую функцию splice, join, чтобы преобразовать это в формат 01 декабря 2017 г. Так есть ли другой лучший способ сделать это? @Tsh
date.toISOString (). replace (/^(....)-(..)-(..).*$/, '$ 2 $ 3, $ 1') возвращение 12 01,2017 не похоже на декабрь 01,2017
вы говорите о MMM DD,YYYY, а не о MM DD,YYYY. Попробуйте date.toString().replace(/\S* (\S*) (\S*) (\S*) .*/, '$1 $2,$3')



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Следующий фрагмент должен делать примерно то, что вы хотите. Если вам нужно изменить формат месяцев, вы можете просто отредактировать массив monthNames.
var date = new Date(2017,11,1);
var monthNames = [
"jan", "feb", "mar",
"apr", "may", "jun", "jul",
"aug", "sep", "oct",
"nov", "dec"
];
var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();
day = day < 10 ? "0" + day.toString() : day.toString();
var result = monthNames[monthIndex] + ' ' + day + ',' + year;
console.info(result);Чтобы обратить процесс вспять, вам нужно будет разделить строку на части, найти индекс названия месяца в массиве, а затем создать новый Date из этих частей.
Какое время дня используется для отметки времени? какой часовой пояс?