Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建一个;“修改日期”;React--Edit中的值:更新为工作代码_Javascript_Reactjs_Time - Fatal编程技术网

Javascript 创建一个;“修改日期”;React--Edit中的值:更新为工作代码

Javascript 创建一个;“修改日期”;React--Edit中的值:更新为工作代码,javascript,reactjs,time,Javascript,Reactjs,Time,我需要获取修改值的日期/时间,以便在状态下更新它,然后通过上下文将其推送到App.js中的addNote函数。json服务器的一个示例是“2019-01-03T00:00:00.000Z”,因此我需要日期和时间来匹配此格式 export class AddNote extends Component { state = { id: '', name: '', modified: '', folderId: '',

我需要获取修改值的日期/时间,以便在状态下更新它,然后通过上下文将其推送到App.js中的addNote函数。json服务器的一个示例是“2019-01-03T00:00:00.000Z”,因此我需要日期和时间来匹配此格式

export class AddNote extends Component {
    state = {
        id: '',
        name: '',
        modified: '', 
        folderId: '',
        content: ''
    }

    static contextType = Context;

    handleChange = (e) => {
     const { modified } = e.target.dataset.modified; <---------
        this.setState({
            id: e.target.id, 
            name: e.target.value, 
            modified: {modified}, 
            folderId: e.target.dataset.folderId
        })
    }
导出类AddNote扩展组件{
状态={
id:“”,
名称:“”,
已修改:“”,
folderId:“”,
内容:“”
}
静态上下文类型=上下文;
handleChange=(e)=>{

const{modified}=e.target.dataset.modified;您正在寻找一个ISO字符串,该字符串表示vanilla JS中的datetime对象。拥有datetime对象后,您可以调用下面的来正确输出上面的内容

const event = new Date('05 October 2011 14:48 UTC');
console.log(event.toString());
// expected output: Wed Oct 05 2011 16:48:00 GMT+0200 (CEST)
// (note: your timezone may vary)

console.log(event.toISOString());
// expected output: 2011-10-05T14:48:00.000Z
下面是Mozilla文档的链接,其中描述了这一点


在考虑事件、日志记录、度量或其他任何内容的时间戳时,需要注意一件事。尽早决定保存时间戳数据的格式,并坚持使用该格式,经过反复试验后,符合ISO8601标准的时间戳(包括尽可能多的有关偏移量的信息)是一个很好的起点。否则时区管理的一致性将在以后成为一个问题。

您正在寻找一个ISO字符串,该字符串表示vanilla JS中的datetime对象。一旦您有了datetime对象,您可以调用下面的来正确输出上面的内容

const event = new Date('05 October 2011 14:48 UTC');
console.log(event.toString());
// expected output: Wed Oct 05 2011 16:48:00 GMT+0200 (CEST)
// (note: your timezone may vary)

console.log(event.toISOString());
// expected output: 2011-10-05T14:48:00.000Z
下面是Mozilla文档的链接,其中描述了这一点


在考虑事件、日志记录、度量或其他任何内容的时间戳时,需要注意一件事。尽早决定保存时间戳数据的格式,并坚持使用该格式,经过反复试验后,符合ISO8601标准的时间戳(包括尽可能多的有关偏移量的信息)是一个很好的起点。否则时区管理的一致性将在以后成为一个问题。

需要注意的是:


const{modified}=e.target.modified.toISOString()需要注意的事项:


const{modified}=e.target.modified.toISOString()您希望与服务器返回的日期时间匹配的日期时间在哪里?是
this.state.modified
?这是我刚刚意识到的问题的另一半。我可以按照下面的回答转换它,但首先我需要获取值以开始好的,这实际上是我想要的…值。关于如何创建的建议它没有为用户手动输入日期创建字段?这很简单。您只需创建一个
新日期()
这将返回当前日期和时间。如果用户正在输入一些数据,只需等待他们提交,当您绑定模型时,您将为日期创建一个额外字段,并使用
新日期()
创建一个
日期的实例。然后您可以使用该
(新日期()).toISOString()
转换。但显然,您会将其存储到一个变量中。您希望与服务器返回的日期时间匹配的日期时间在哪里?是否是
this.state.modified
?这是我刚刚意识到的问题的另一半。我可以按照下面的回答进行转换,但首先我需要获取值以开始,好吗这就是我想要的…值。关于如何创建它,而不需要为用户手动输入日期创建字段,有什么建议吗?这很简单。您只需创建一个
新日期()
这将返回当前日期和时间。如果用户正在输入一些数据,只需等待他们提交,当您绑定模型时,您将为日期创建一个额外字段,并使用
新日期()
创建一个
日期的实例。然后您可以使用该
(新日期()).toISOString()
转换它。但是很明显,你会将它存储到一个变量中,让它工作起来!这是几件事情的组合,显然你必须先转换日期,然后再传递它。dat-和dataset方法解决了不识别“this.modified”的问题。我更新了OP以表示工作代码。我不确定为什么在赋值之前需要进行转换,因为它作为字符串存储在属性上,因此不会产生任何影响。但我很高兴您找到了解决方案。(显然这是一个bug)。但是,是的,现在一切都正常。感谢您的帮助。它正常工作了!这是几件事的组合,显然在传递日期之前必须先转换日期。dat和dataset方法解决了无法识别“this.modified”的问题。我更新了OP以表示工作代码。我不确定为什么在分配值之前必须进行转换,因为它在属性上存储为字符串,因此不会产生任何影响。但我很高兴您找到了解决方案。(显然这是一个bug)。但是,是的,现在一切都正常了。谢谢您的帮助
constructor(props)
{
  super(props);
  this.handleChange = this.handleChange.bind(this);
}
<input 
    type="text"
    id={id}
    value={this.state.name}
    data-folderId={folderId} // add data-
    data-modified={date} <------------ //add data-
    onChange={this.handleChange}
/>