2

JSONのタイムスタンプからのみDATEとMONTHを取得する際の解決策を見つけることに問題があります。私のjsonは次のようになります:

{
 "status": "ok",
 "posts": [
 { 
  "id": "21",
  "title": "Title",
  "date": "1374267600"
}
]
}

そしてajax呼び出し:

   $.ajax({ 
    url: ,
    async: false,
    callback: 'callback',
    crossDomain: true,
    contentType: 'application/json; charset=utf-8',
    dataType: 'jsonp',
    timeout: 2000,
    success: function (data, status) {


       if (data !== undefined && data.posts !== undefined) {

        $('#dates').append('<div id="date">' + item.date + '</div><div id="month">' + item.date + '</div>');
       }    
    }
});

スタンプのみを表示します。助けてください。

また、jsfiddleでそれを行うことができれば、本当に感謝しています!

4

8 に答える 8

5

最初にタイムスタンプを日付オブジェクトに変換する必要があります。タイムスタンプは秒単位ですが、javascript 日付コンストラクターはミリ秒かかるため、タイムスタンプに 1000 を掛ける必要があることに注意してください。

months = ["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"];
timestamp = "1374267600";
var jsDate = new Date(timestamp*1000);

$('#dates').append('<div id="date">' + jsDate.toDateString() + '</div>'+
'<div id="month">' + months[jsDate.getMonth()] + '</div>');

フィドル

于 2013-07-15T19:34:00.250 に答える
2

これは、必要なすべてのパラメーターとさらに多くのパラメーターを提供するために私が書いた関数です。

/*
 * This function get all date from timestamp
 */
function dataFromTimestamp(timestamp){
    var d = new Date(timestamp);

    // Time
    var h = addZero(d.getHours());              //hours
    var m = addZero(d.getMinutes());            //minutes
    var s = addZero(d.getSeconds());            //seconds

    // Date
    var da = d.getDate();                       //day
    var mon = d.getMonth() + 1;                 //month
    var yr = d.getFullYear();                   //year
    var dw = d.getDay();                        //day in week

    // Readable feilds
    months = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
    var monName = months[d.getMonth()];         //month Name
    var time = h + ":" + m + ":" + s;           //full time show
    var thisDay = da + "/" + mon + "/" + yr;    //full date show

    var dateTime = {
        seconds : s,
        minutes : m,
        hours : h,
        dayInMonth : da,
        month : mon,
        year : yr,
        dayInTheWeek : dw,
        monthName : monName,
        fullTime : time,
        fullDate : thisDay
    };
    return dateTime;

    function addZero(i) {
        if (i < 10) {
            i = "0" + i;
        }
        return i;
    }
}

https://jsfiddle.net/mkammdgz/

于 2015-05-18T19:18:04.657 に答える
0
  var dt = new Date();
  var time = dt.getMonth()+1 +""+ dt.getDate()+ "" +dt.getFullYear() +""+ dt.getHours() +""+ dt.getMinutes() +""+ dt.getSeconds();

  console.log(time); 
于 2016-07-01T10:39:29.917 に答える
0

遅いことはわかっていますが、この問題に直面し、解決策を見つけました。

代わりに使用 moment()して、タイムスタンプから実際の日付に変換してみてください

完全な日付を取得するには、使用しますmoment(Timestamp).format('MM/DD/YYYY')

月名を取得するには、次を使用しますmoment(Timestamp).format('MMMM')

あなたのコードの場合は、次のことを試してください。

$('#dates').append('<div id="date">' + 
  moment(item.date).format('MM/DD/YYYY') + 
  '</div><div id="month">' + 
  moment(item.date).format('MMMM') + 
  '</div>');
于 2018-01-08T22:20:41.033 に答える