【问题标题】:How to get Data info from OpenWeatherMap API 'dt'如何从 OpenWeatherMap API 'dt' 获取数据信息
【发布时间】:2021-01-16 04:22:05
【问题描述】:

我正在使用 OpenWeatherMap API 制作一个简单的反应应用程序。我需要来自该 API 的日期信息来显示哪一天是当前日期。 API 向我返回了一个 dt 对象,我认为这与日期有关,但我不能使用它。如何将其转换为有效的日期字符串?我找到了一个话题about this issue,但答案并不让我满意。

{
"lat": 38.783,
"lon": 41.0466,
"timezone": "Europe/Istanbul",
"timezone_offset": 10800,
"current": {
    "dt": 1610733742,
    "sunrise": 1610685149,
    "sunset": 1610720251,
    "temp": 274.58,
    "feels_like": 270.28,

【问题讨论】:

    标签: javascript reactjs date


    【解决方案1】:

    我找到了答案。
    我们可以将 dt 对象转换为 JS 日期对象。像这样。

    棘手的部分是我们必须将 day 对象转换为字符串。

        const dt = 1610685149
        
        var day = new Date(dt*1000);
        
        console.log(day.toUTCString()) // 'Fri, 15 Jan 2021 04:32:29 GMT'
        console.log(day.toDateString()) // 'Fri Jan 15 2021'
        console.log(day.toISOString()) // '2021-01-15T04:32:29.000Z'
        console.log(day.toString()) // 'Fri Jan 15 2021 07:32:29 GMT+0300 (GMT+03:00)'
    

    我从这里w3schools.com display dates找到了答案

    一天结束,我就像这样在我的代码中实现这个解决方案。

    function createDate(dt, type) {
            var day = new Date(dt * 1000);
            if (type == "long") {
                let options = {
                    weekday: "long",
                    year: "numeric",
                    month: "long",
                    day: "numeric",
                };
                return day.toLocaleString("en-us", options); // Friday, January 15, 2021
            } else {
                return day.toLocaleString("en-us", { weekday: "long" }); // Friday
            }
        }
    

    编辑:我找到了更优雅的方式来转换为字符串from here. 并且还检查了这个MDN resource about toLocaleString()

    【讨论】:

      猜你喜欢
      • 2021-12-31
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      • 2019-04-23
      • 2021-03-08
      • 2020-09-07
      • 2018-05-17
      • 2016-06-15
      相关资源
      最近更新 更多