【问题标题】:date and time concatenate the values in react Js日期和时间连接反应Js中的值
【发布时间】:2017-07-18 16:07:05
【问题描述】:

如何在 react js 中连接日期和时间值。对于日期和时间选择,我使用材料 UI 日期选择器和时间选择器来选择日期和时间,这是我的示例代码。

selectDate(event, date) {
  this.setState({
    updatedDate: moment(date).format('DD-MM-YYYY'),
  });
}

selectTime(event, time) {
  this.setState({
    startime: moment(time).format('HH:mm')
  });
}

我想转换成YYYY-MM-DDThh:mm:ss这种格式

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    如果它确实必须始终保持一个日期时间字符串的状态,那么沿着这些思路的东西应该可以工作(即采用先前设置的状态字符串,转换为moment 对象,仅修改相关部分,然后应用回来再次声明为字符串)

    format = 'YYYY-MM-DDThh:mm:ss'
    
    selectDate = (event, date) => this.setState( d => prevState => ({
        datetimeStr: (moment(prevState.datetimeStr, this.format) || d)
                        .year(d.year()).month(d.month()).date(d.date())
                          .format(this.format)
      })(moment(date)))
    
    
    selectTime = (event, time) => this.setState( d => prevState => ({
        datetimeStr: (moment(prevState.datetimeStr, this.format) || d)
                        .hour(d.hour()).minutes(d.minutes())
                          .format(this.format)
      })(moment(time)))
    

    但是,如果它们都作为实际的 Date 对象以状态存储并且仅在需要时在某些输出中作为字符串组合/格式化,那么如果需要在不同的地方进行不同的格式化,您仍然可以派生它,这样会更加灵活来自同一个州

    selectDate = (event, date) => this.setState({date})
    
    selectTime = (event, time) => this.setState({time})
    
    getSelectedDatetimeStr = () => {
      const date = moment(this.state.date || {})
      const time = moment(this.state.time || {})
      return moment({
        year: date.year(),
        month: date.month(),
        day: date.date(),
        hours: time.hours(),
        minute: time.minutes()
      }).format('YYYY-MM-DDThh:mm:ss')
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-13
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多