【问题标题】:convert dateTime format in react js在反应js中转换日期时间格式
【发布时间】:2021-10-29 02:55:12
【问题描述】:

我有这个日期:

2021 年 8 月 23 日星期一 15:03:00 GMT+0430(伊朗夏令时间)

如何转换这种格式:

2021-10-10T00:00:00

【问题讨论】:

  • 第一个日期是硬编码的还是从 JS 接收的?
  • 你能解释一下这个转换的场景吗?您是否从数据库/用户输入中获取数据?
  • 我从用户那里得到的(userinput)
  • date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + 'T00:00:00' developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • 你可以使用 moment.js :momentjs.com

标签: javascript reactjs date


【解决方案1】:

你可以这样做:

new Date('Mon Aug 23 2021 15:03:00 GMT+0430 (Iran Daylight Time)')
.toISOString().split('.')[0]

=> '2021-08-23T10:33:00'

如果您不喜欢原生的转换方式,可以使用库Moment.js

您的代码如下所示:

moment('Mon Aug 23 2021 15:03:00 GMT+0430 (Iran Daylight Time)')
.format('YYYY-MM-DDTHH:mm:ss');

=> '2021-08-23T10:33:00'

如果您不想保留小时、分钟和秒,这些示例将起作用。

原生方式:

new Date('Mon Aug 23 2021 15:03:00 GMT+0430 (Iran Daylight Time)').toISOString().split('T')[0] + 'T00:00:00'

=> '2021-08-23T10:33:00'

使用 Moment.js:

moment('Mon Aug 23 2021 15:03:00 GMT+0430 (Iran Daylight Time)')
.format('YYYY-MM-DDT00:00:00');

=> '2021-08-23T10:33:00'

编辑

正如 RobG 在 cmets 中提到的,toISOString() 函数将返回 UTC 时间格式。所以还有一个使用 moment.js 的理由!

【讨论】:

  • “原生方式”返回 UTC 日期和时间伪装成本地,不是直接转换格式。
  • toISOString 的问题不是使用库的原因,而是不使用 toISOString 的原因。 ;-)
  • 你可以这样想!使用 moment.js 更聪明,因为它提供了更多的可能性和灵活性,但感谢您的意见!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 2020-02-20
  • 1970-01-01
相关资源
最近更新 更多