【问题标题】:Javascript timestamp to date迄今为止的 Javascript 时间戳
【发布时间】:2014-07-04 01:55:00
【问题描述】:

谁能帮帮我,这让我发疯。我是 Javascript 的初学者,现在我第一次遇到日期问题。

我已经问过了,但没有人回答我: json with parsed time or timestamp to amchartss

基本上我有这个 XHR 电话。

 getJSON = function(url) {
    var xhr = new XMLHttpRequest();
    xhr.open('get', url, true);
    xhr.responseType = 'json';

    xhr.onload = function() {
        var status = xhr.status;
        if (status == 200) {
            chartLoad(xhr.response);
            console.log(xhr.response);
        } else {
            console.log("oh shit");
        }
    };
    xhr.send();
};

我在这里收到带有时间戳的 JSON 文件的响应,我如何将所有时间戳转换为日期 YYYY-MM-DD HH:mm。

之前我直接在服务器上转换日期字符串而不是时间戳,这样我就不需要在客户端进行转换,但这种方式仅适用于 Chrome。

帮助!

【问题讨论】:

    标签: javascript json xmlhttprequest amcharts


    【解决方案1】:

    虽然 JavaScript 中没有原生 date.format 方法,但您可以为一次性实现自行开发。在你的情况下是这样的:

    var newDate = new Date(myTimeStamp);
    
    var outDate = newDate.getFullYear()+"-"+(newDate.getMonth()+1)+"-"+newDate.getDate()+" "+newDate.getHours()+":"+newDate.getMinutes();
    

    对于今天将输出的日期:2014-5-15 16:7 请注意从 0 开始计数的 getMonth 的 +1 如果你想确保值总是两位数(即单个数字前导零),可能需要额外的摆弄

    在 xhr onload 处理程序中执行此操作可能是这样的:

               xhr.onload = function (e) {
                    if (this.status == 200) {
                        var blob = this.response;
    
                        var img = document.createElement('img');
                        img.onload = function (e) {
                            window.URL.revokeObjectURL(img.src); // Clean up after yourself.
                        };
                        img.src = window.URL.createObjectURL(blob);
                        document.body.appendChild(img);
    
                        var myTimeStamp = e.timeStamp;
                        //I would probably want to put this date code
                        //in a separate function somewhere
                        var newDate = new Date(myTimeStamp);
                        var outDate = newDate.getFullYear()+"-"+(newDate.getMonth()+1)+"-"+newDate.getDate()+" "+newDate.getHours()+":"+newDate.getMinutes();
                        var div = document.createElement('div');
                        div.innerHTML = outDate;
                        document.body.appendChild(div);
                    }
                };
    

    【讨论】:

    • 知道了,再问一个问题,我如何将它应用于 xhr 中的所有时间戳?
    • 我想我会将它包装在一个函数中,然后在每个“onreadystatechange”处理程序中调用它。是这个意思吗?
    • @Jack 或“onload”处理程序在你的情况下。
    • @Jack 还是您的意思是从 onload 事件中提取时间戳值?
    • 我的意思是我需要做foreach循环还是有其他方法?谢谢。
    【解决方案2】:

    我喜欢使用 moment.js 来满足我的日期时间解析和格式化需求:

    http://momentjs.com/

    代码如下:

    moment(some_timestamp).format('YYYY-MM-DD HH:mm')
    

    【讨论】:

    • 我更喜欢用 vanilla JS 来做,这样我学得更好:)
    【解决方案3】:

    【讨论】:

    • 已解决,但我会记住它以供将来参考:) 谢谢!
    猜你喜欢
    • 2020-07-02
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多