如何将unix时间戳转换为日历日期moment.js

2020/11/11 15:42 · javascript ·  · 0评论

我有一个Unix时间戳,我正在尝试将其转换为日历日期,例如MM/DD/YYYY到目前为止,我有这个:

$(document).ready(function() {
  var value = $("#unixtime").val(); //this retrieves the unix timestamp
  var dateString = moment(value).calendar(); 
  alert(dateString);
});

当我尝试打印日历日期时,窗口会显示“无效日期”。谁能帮我吗?

按照您的要求使用moment.js,有一种unix方法可以在几秒钟内接受unix时间戳:

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

可能会晚一点,但是对于这样的新问题,我使用以下代码:

moment(timestamp, 'X').format('lll');

您可以更改格式以满足您的需求,还可以添加时区,如下所示:

moment(timestamp, 'X').tz(timezone).format('lll');

只有它

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

严格模式宽恕模式

虽然严格模式在大多数情况下会更好,但是当传递给当下的字符串格式可能有所不同时,宽恕模式可能会非常有用。

在更高版本中,解析器将默认使用严格模式。严格模式要求输入的时间必须与指定格式完全匹配,包括分隔符。通过将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);
});

此函数从时间戳创建日期:

    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''')
本文地址:http://javascript.askforanswer.com/ruhejiangunixshijianchuozhuanhuanweiriliriqimoment-js.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!