【发布时间】:2023-11-15 19:35:01
【问题描述】:
我正在使用 PrimeNg 日历模块来获取日期。我有以下代码:
<p-calendar formControlName="valid_till" [dateFormat]="'mm/dd/yy'"></p-calendar>
现在,当我在组件中选择例如 31st July 2020 的日期时,如果我记录该值,我将得到以下信息:
Fri Jul 31 2020 00:00:00 GMT+0530 (India Standard Time)
但是当我按如下方式将此值传递给服务器时:
this.myService
.save(this.myForm.value, this.editId);
它传递的日期为valid_till: "2020-07-30T18:30:00.000Z",这个值在数据库中保存为2020-07-30 23:59:59。但我必须将其保存为2020-07-31 23:59:59。为什么会这样?如何保存我被选中的确切日期?
我已尝试添加在另一篇文章中看到的偏移量
newDate = new Date(date_valid_till.getTime() +date_valid_till.getTimezoneOffset() * 60000);
但这又给了我Thu Jul 30 2020 18:29:59 GMT+0530 (India Standard Time),仍然不是我想要的日期。我只需要我在日期选择器中选择的Thu Jul 31。
PS : 我使用的是 MySQL 数据库,列是 DateTime 类型。
【问题讨论】:
-
这里是时区问题。
-
如何解决这个问题?我曾尝试添加像
newDate = new Date(date_valid_till.getTime() + date_valid_till.getTimezoneOffset() * 60000);这样的偏移量,但它给了我Thu Jul 30 2020 18:29:59 GMT+0530 (India Standard Time)并且它还有一天休息 -
利用时刻设置时区
-
但是由于表单字段是日期选择器,如果我使用时刻设置,当我使用路径值时会显示一些错误。它应该是一个日期对象
标签: javascript angular date primeng