【问题标题】:on IOS week day doesnt display在IOS工作日不显示
【发布时间】:2021-10-24 05:48:50
【问题描述】:

一个月前我在做天气网站,完成了, 我在那里有 5 张内容卡,每张卡都描述了每天的天气情况,并且在卡的顶部我包括了 工作日,当我提出 API 请求时,我得到了类似 6-21-2021 的日期格式,我尝试对齐此日期字符串,以使 Javascript 中的 new Date() 可读,以从 Javascript 方法中提取正确的工作日数

这就是我的工作

const weekDays: string[] = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday",];

//this part is included in get request
const dateFormatAPI = (response.data.list[0].dt_txt).split("-") //6-21-2021 -> ["6", "21", "2021"]
const alignedDate: string = String([dateFormatAPI[1],dateFormatAPI[2],dateFormatAPI[0]]) //"21, 6, 2021"
.replace(",", "-")
.replace(",", "-") //Output: 21-6-2021

const date = new Date(alignedDate); //putting this format in Date Method

console.log(days[date.getDay()]) //and getting current number putting this as array index and get week day  

它输出工作日,但它只在 Windows 计算机和 Android 上输出

当我让我的朋友在 IOS 上检查我的网站时,她得到了错误,而不是显示她得到 undefined

的工作日

我有疑问为什么会这样?我该如何解决?

如果你现在使用 IOS,你可以自己查看这个网站 Weather Website

【问题讨论】:

    标签: javascript typescript api date


    【解决方案1】:

    解析一个字符串以创建另一个由内置解析器解析的字符串不是一个好主意,请参阅Why does Date.parse give incorrect results?

    “21-6-2021”不是 ECMA-262 支持的格式,因此解析取决于实现,iOS 将其视为无效日期。

    图书馆可以提供帮助,但不是必需的。解析字符串尝试:

    let s = '6-21-2021';
    // Split on non–digit character
    let [m, d, y] = s.split(/\D/);
    // Use the Date constructor
    let date = new Date(y, m - 1, d);
    
    console.log(date.toDateString());
    console.log(date.getDay());
    console.log(date.toLocaleString('default',{weekday:'long'}));

    【讨论】:

      猜你喜欢
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多