gpt4 book ai didi

javascript - 如果时间戳在 aws 上使用 golang 生成,则在本地系统上显示不同的日期时间

转载 作者:数据小太阳 更新时间:2023-10-29 03:12:33 26 4
gpt4 key购买 nike

我有一个与使用 golang 开发的 REST API 集成的 Angular 应用程序,在这个应用程序上我创建了一个待办事项列表功能,我每周或每月创建待办事项,同时创建待办事项我用 javascript 生成第一个时间戳,然后将它提交给 API如果它是每周或每月的待办事项,它会为其他日期创建时间戳。当我使用 API 获取它并使用 javascript 日期函数显示时,第一个时间戳显示正确的日期时间,但其他日期的时间戳显示第二天,就像我保存星期三然后显示星期四一样。

据我所知,时间戳不是基于时区的,所以我选择了时间戳而不是日期时间

我该如何解决这个问题?

以下是我将时间戳转换为日期的代码(按要求的格式)

let date = new Date(this.date*1000);

this.day = ("0" + date.getDate()).slice(-2);
this.month = ("0" + (date.getMonth()+1)).slice(-2);
this.year = date.getFullYear();
this.hours = ("0" + date.getHours()).slice(-2);
this.minutes = ("0" + date.getMinutes()).slice(-2);
this.seconds = ("0" + date.getSeconds()).slice(-2);
this.meridian = this.hours >= 12 ? 'pm' : 'am';
//Get name of the day and month
this.weekName = this.weekday[date.getDay()];
this.monthName = date.toLocaleString(this.locale, { month: "short" });

最佳答案

首先:我假设 this.weekday 是一个包含星期名称的数组,如下所示:

this.weekday = [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sunday"
]

这是人们用来获取星期几的常用方法,但还有更好的方法。


使用 toLocaleDateString

Vanilla Javascript 有一个很好的方法来获取当天的名称,它甚至支持不同的语言环境!

this.weekName = this.date.toLocaleDateString('en', { weekday: 'long' })

使用带有名称的数组

如果出于某种原因您无论如何都希望使用数组,您应该知道数组是从零开始的并且从 date.getDay() 1 开始。换句话说:您的数组从 0 计数到 6,而 date.getDay() 从 1 计数到 7。

解决这个问题的一个简单方法是将 1 添加到 date.getDay()

的结果中
this.weekName = this.weekday[date.getDay() + 1];

您的其余变量也可以使用 Date.toLocaleDateString 设置,因为它支持许多不同的输出:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay

关于javascript - 如果时间戳在 aws 上使用 golang 生成,则在本地系统上显示不同的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47451959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com