【问题标题】:How to get correct date format in ajax?如何在ajax中获得正确的日期格式?
【发布时间】:2016-04-17 03:27:18
【问题描述】:

我有一个函数来获取天气预报 ajax 以将其加载到 div 中,但 json 中的日期有一个日期时间 format type: "dt":1452254400

我需要格式:'Y-m-d',但在 ajax 中我不能使用 gmdate() php 函数来获取它。

我正在尝试使用

  $.ajax({
    url: urlforecast,
    dataType:"JSON",
    success:function(data){
       var str = (""+data['list'][0]['dt']);

       var num = parseInt(str.replace(/[^0-9]/g, ""));
       var date = new Date(num);
       alert(date);

但他的格式是:Sat Jan 17 1970 20:29:56 GMT+0100,我不喜欢这个。

如何将gmdate() 之类的格式转换为ajax 函数?

【问题讨论】:

  • 您将数字转换为字符串 (""+data['list'][0]['dt']) 只是为了再次将其解析为数字 (parseInt())。为什么?

标签: javascript php jquery ajax weather-api


【解决方案1】:

自纪元以来你有几秒钟,javascript使用毫秒,所以你必须乘以一千

$.ajax({
    url      : urlforecast,
    dataType : "JSON",
    success  : function(data){
        var num  = (+data['list'][0]['dt']) * 1000;
        var date = new Date(num);
    }
});

要获得Y-m-d,你会这样做

var date = new Date(num);
var ymd  = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();

【讨论】:

    【解决方案2】:

    尝试将 num 乘以 1000 ,使用 .toJSON(), String.prototype.slice()

    var num = 1452254400;
    var ymd = new Date(num * 1000).toJSON().slice(0, 10);
    console.log(ymd)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-27
      • 2011-10-26
      • 1970-01-01
      • 1970-01-01
      • 2016-05-11
      • 1970-01-01
      • 2020-05-30
      • 2014-05-17
      相关资源
      最近更新 更多