【问题标题】:Date input showing value one day prior日期输入显示前一天的值
【发布时间】:2020-04-10 01:48:59
【问题描述】:

选择器 (ngx-bootstrap datepicker) 上的日期显示早一天。

如果日期值是

2019-04-26T18:30:00

日期选择器将其显示为 04/25/2019。 对于日期选择器输入,我做了以下事情-

this.dateAdded = new Date(this.user.dateAdded).toLocaleDateString();

我现在是 GMT+5:30,所以即使调整时区,我也不明白为什么会晚一天。

【问题讨论】:

  • 确定时间差并在到达服务器时将其加起来。在您的情况下,在所有情况下都应将 5 小时 30 分钟添加到日期值
  • @Ajith 这是一个非常老套的解决方案,最好找出并解决问题的根源。
  • 嘿,我写的 DateTime 值是我从服务器接收到的。
  • 我无法重现此问题,如果您在代码中的该行周围添加 console.logs 并在该行执行后检查 this.user.dateAdded 的值和 this.dateAdded 的结果值,是否它按预期工作?
  • 似乎是关于 ngx-bootstrap datepicker github.com/valor-software/ngx-bootstrap/issues/3609 的持续问题

标签: javascript angular ngx-bootstrap


【解决方案1】:

在度过了一天的大部分时间并了解了在 Javascript 中显示日期所带来的复杂性之后,这个特定问题的答案有点虎头蛇尾。 我使用的 ngx-bootstrap 版本(5.2)在 datepicker 上有一些错误。 使用 5.1 版本,以免日期出现问题。 似乎 ToLocaleDateString 仅在 bsDatePicker (在午夜)针对时区进行调整时才给出日期组件,它给出了前一天。

https://github.com/valor-software/ngx-bootstrap/issues/3609 有关相同问题的 github 问题的参考。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 2020-04-27
    相关资源
    最近更新 更多