[英]How to convert unix timestamp to calendar date moment.js
我有一個 unix 時間戳,我正在嘗試將其轉換為日歷日期,例如MM/DD/YYYY
。 到目前為止,我有這個:
$(document).ready(function() {
var value = $("#unixtime").val(); //this retrieves the unix timestamp
var dateString = moment(value).calendar();
alert(dateString);
});
當我嘗試打印出日歷日期時,window 顯示“無效日期”。 誰能幫我嗎?
按照您的要求使用 moment.js,有一種以秒為單位接受 unix 時間戳的unix
方法:
var dateString = moment.unix(value).format("MM/DD/YYYY");
UNIX 時間戳是從 1970 年開始的秒數,因此您需要將其轉換為 JS 日期對象:
var date = new Date(unixTimestamp*1000);
可能有點晚了,但對於像這樣的新問題,我使用以下代碼:
moment(timestamp, 'X').format('lll');
您可以更改格式以滿足您的需要,還可以像這樣添加時區:
moment(timestamp, 'X').tz(timezone).format('lll');
new moment(timeStamp,'yyyyMMddHHmmssfff').toDate()
只有它,
moment.unix(date).toDate();
moment(1454521239279).toDate()
moment(1454521239279).format()
我像這個例子一樣修復了它。
$scope.myCalendar = new Date(myUnixDate*1000);
<input date-time ng-model="myCalendar" format="DD/MM/YYYY" />
$(document).ready(function() {
var value = $("#unixtime").val(); //this retrieves the unix timestamp
var dateString = moment(value, 'MM/DD/YYYY', false).calendar();
alert(dateString);
});
雖然嚴格模式在大多數情況下效果更好,但當傳遞給 moment 的字符串格式可能有所不同時,寬恕模式可能非常有用。
在以后的版本中,解析器將默認使用嚴格模式。 嚴格模式要求輸入到時刻完全匹配指定的格式,包括分隔符。 通過將 true 作為第三個參數傳遞給 moment 函數來設置嚴格模式。
在第三方 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);
});
此函數從時間戳創建日期:
function formatDateTime(dateString) {
const parsed = moment(new Date(dateString))
if (!parsed.isValid()) {
return dateString
}
return parsed.format('MMM D, YYYY, HH:mmA')
}
moment(timestamp).format('''any format''')
首先你可以用js將時間戳轉換為日期object
const date = new Date(時間戳)
然后你可以使用 momentjs 按照你想要的方式格式化它
const formatDate = moment(date).format("日/月/年")
我有一個像1668919452
這樣的時間戳。
這樣做讓我得到了正確的結果: {moment.unix(created).format("l")}
我添加了.unix
方法。
在此之前,時間戳記為 1970 年代
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.