NodeJS .getDay()在将日期转换为特定时区时不起作用

gxwragnw  于 2023-10-17  发布在  Node.js
关注(0)|答案(3)|浏览(162)

下面是我的代码:

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

尝试将数据转换为IST。
没有.toLocaleString.getday是完美的工作。但当使用得到下面的错误:

TypeError: date.getDay is not a function
    at Object. (D:\Learning\node-course\web-server\src\app.js:12:14)
    at Module._compile (internal/modules/cjs/loader.js:1200`enter code here`:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
    at Module.load (internal/modules/cjs/loader.js:1049:32)
    at Function.Module._load (internal/modules/cjs/loader.js:937:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47

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

juzqafwq

juzqafwq1#

使用getDate()代替。此方法返回今天的日期

xdyibdwo

xdyibdwo2#

toLocaleString的返回值是一个string。字符串没有getDay方法。
JavaScript的Date对象没有允许您使用其他时区的功能。它只支持UTC和代码运行的当前时区(同时,通过提供一些方法,给予您UTC的信息,而其他方法则给予您本地时区的信息)。(有a proposal可以解决这个问题,但它仍然只在第二阶段。
如果你想知道用户当前时区的日期,只需直接在date对象上使用getDay。如果你想要一个不同的时区,你需要一个维护良好的支持多个时区的库。

cczfrluj

cczfrluj3#

因为它转换成字符串,而字符串没有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);

相关问题