Ответ 1
Использование момента .js по вашему запросу:
var dateString = moment.unix(value).format("MM/DD/YYYY");
У меня есть метка времени Unix, и я пытаюсь преобразовать ее в календарную дату, такую как MM/DD/YYYY
. Пока у меня есть это:
$(document).ready(function() {
var value = $("#unixtime").val(); //this retrieves the unix timestamp
var dateString = moment(value).calendar();
alert(dateString);
});
Когда я пытаюсь распечатать календарную дату, в окне появляется сообщение "Неверная дата". Может кто-нибудь мне помочь?
Использование момента .js по вашему запросу:
var dateString = moment.unix(value).format("MM/DD/YYYY");
Временная метка UNIX - это количество секунд с 1970 года, поэтому вам нужно преобразовать ее в объект JS Date:
var date = new Date(unixTimestamp*1000);
Moment.js предоставляет локализованные форматы, которые можно использовать.
Вот пример:
const moment = require('moment');
const timestamp = 1519482900000;
const formatted = moment(timestamp).format('L');
console.log(formatted); // "02/24/2018"
new moment(timeStamp,'yyyyMMddHHmmssfff').toDate()
Я исправил это как этот пример.
$scope.myCalendar = new Date(myUnixDate*1000);
<input date-time ng-model="myCalendar" format="DD/MM/YYYY" />
Может быть немного поздно, но для новых проблем, как это, я использую этот код:
moment(timestamp, 'X').format('lll');
Вы можете изменить формат в соответствии со своими потребностями, а также добавить часовой пояс, например так:
moment(timestamp, 'X').tz(timezone).format('lll');
$(document).ready(function() {
var value = $("#unixtime").val(); //this retrieves the unix timestamp
var dateString = moment(value, 'MM/DD/YYYY', false).calendar();
alert(dateString);
});
Существует строгий режим и режим прощения.
Хотя строгий режим работает лучше в большинстве ситуаций, прощающий режим может быть очень полезен, когда формат строки, передаваемой в данный момент, может отличаться.
В более позднем выпуске парсер по умолчанию будет использовать строгий режим. Строгий режим требует ввода в данный момент, чтобы точно соответствовать указанному формату, включая разделители. Строгий режим устанавливается путем передачи true в качестве третьего параметра функции момента.
Распространенный сценарий, когда режим прощения полезен, - это ситуации, когда сторонний API предоставляет дату, и формат даты для этого API может измениться. Предположим, что API начинается с отправки дат в формате "ГГГГ-ММ-ДД", а затем изменяется на формат "ММ/ДД/ГГГГ".
В строгом режиме следующий код приводит к отображению "Неверная дата":
moment('01/12/2016', 'YYYY-MM-DD', true).format()
"Invalid date"
В режиме прощения с использованием строки формата вы получаете неправильную дату:
moment('01/12/2016', 'YYYY-MM-DD').format()
"2001-12-20T00:00:00-06:00"
другой способ будет
$(document).ready(function() {
var value = $("#unixtime").val(); //this retrieves the unix timestamp
var dateString = moment.unix(value).calendar();
alert(dateString);
});
Только его,
moment.unix(date).toDate();