我有一个unix时间戳,我正在尝试将其转换为日历日期,例如MM / DD / YYYY。到目前为止,我有这个:
$(document).ready(function() {
var value = $("#unixtime").val(); //this retrieves the unix timestamp
var dateString = moment(value).calendar();
alert(dateString);
});
当我尝试打印日历日期时,窗口显示“无效日期”。谁能帮我吗?
答案 0 :(得分:284)
按照你的要求使用moment.js:
var dateString = moment.unix(value).format("MM/DD/YYYY");
答案 1 :(得分:34)
UNIX时间戳它是从1970年开始的秒数,因此您需要将其转换为JS Date对象:
var date = new Date(unixTimestamp*1000);
答案 2 :(得分:13)
Moment.js提供可以使用的Localized formats。
以下是一个例子:
const moment = require('moment');
const timestamp = 1519482900000;
const formatted = moment(timestamp).format('L');
console.log(formatted); // "02/24/2018"
答案 3 :(得分:4)
new moment(timeStamp,'yyyyMMddHHmmssfff').toDate()
答案 4 :(得分:3)
moment(1454521239279).toDate()
moment(1454521239279).format()
答案 5 :(得分:1)
moment(timestamp).format('''any format''')
答案 6 :(得分:0)
我像这个例子一样修复了它。
$scope.myCalendar = new Date(myUnixDate*1000);
<input date-time ng-model="myCalendar" format="DD/MM/YYYY" />
答案 7 :(得分:0)
可能会晚一点,但是对于这样的新问题,我使用以下代码:
@JsonDeserialize(using=XMLGregorianCalendarDeserializer.class)
@XmlSchemaType(name = "dateTime")
protected XMLGregorianCalendar date;
您可以更改格式以满足您的需求,还可以添加时区,如下所示:
moment(timestamp, 'X').format('lll');
答案 8 :(得分:0)
$(document).ready(function() {
var value = $("#unixtime").val(); //this retrieves the unix timestamp
var dateString = moment(value, 'MM/DD/YYYY', false).calendar();
alert(dateString);
});
有一个strict mode和一个Forgiving mode。
尽管严格模式在大多数情况下效果更好,但是当传递给当下的字符串格式可能有所不同时,宽容模式会非常有用。
在更高版本中,解析器将默认使用严格模式。 严格模式要求输入的时刻与指定格式(包括分隔符)完全匹配。通过将true作为第三个参数传递给矩函数来设置严格模式。
宽容模式有用的常见情况是第三方API提供日期,并且该API的日期格式可能会更改。 假设API首先以“ YYYY-MM-DD”格式发送日期,然后又更改为“ MM / DD / YYYY”格式。
在严格模式下,以下代码导致显示“无效日期”:
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);
});
答案 9 :(得分:0)
只有它
moment.unix(date).toDate();
答案 10 :(得分:0)
此函数从时间戳创建日期:
function formatDateTime(dateString) {
const parsed = moment(new Date(dateString))
if (!parsed.isValid()) {
return dateString
}
return parsed.format('MMM D, YYYY, HH:mmA')
}