【问题标题】:.getDay() is not working while converting date to Particular timezone.getDay() 在将日期转换为特定时区时不起作用
【发布时间】:2020-11-11 21:33:48
【问题描述】:

下面是我的代码:

var date = new Date().toLocaleString("en-US", { timeZone: "Asia/Kolkata" });
var n = date.getDay();

正在尝试将数据转换为 IST。

没有.toLocaleString .getday 工作正常。但是使用时出现以下错误:

类型错误:date.getDay 不是函数 在对象。 (D:\Learning\node-course\web-server\src\app.js:12:14) 在 Module._compile (internal/modules/cjs/loader.js:1200`在此处输入代码`:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10) 在 Module.load (internal/modules/cjs/loader.js:1049:32) 在 Function.Module._load (internal/modules/cjs/loader.js:937:14) 在 Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) 在内部/main/run_main_module.js:17:47

有没有更好的方法将日期转换为 IST 并找到日期?

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    toLocaleString 的返回值是一个字符串。字符串没有getDay 方法。

    JavaScript 的 Date 对象没有让您使用其他时区的功能。它仅支持 UTC 和代码运行的当前时区(同时,通过提供一些以 UTC 为您提供信息的方法和其他以本地时区为您提供信息的方法)。 (有 a proposal 可以解决这个问题,但它仍然只在第 2 阶段。)

    如果您想知道用户当前时区是哪一天,只需在您的日期对象上直接使用getDay。如果您想要不同的时区,则需要一个维护良好且支持多个时区的库。

    【讨论】:

      【解决方案2】:

      因为它转换成字符串,而字符串没有getDay()功能,你可以试试,

      var dateString = new Date().toLocaleString("en-US", { timeZone: "Asia/Kolkata" });
      var date = new Date(dateString);
      var n = date.getDay();
      
      console.log("Date String: ", dateString);
      console.log("Day:", n);

      【讨论】:

      • 感谢@turivishal 的解释和解决方案,它奏效了!
      猜你喜欢
      • 2023-04-03
      • 1970-01-01
      • 2018-08-23
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多