Как разместить время ReactJs - PullRequest
       51

Как разместить время ReactJs

0 голосов
/ 18 февраля 2020

Я объясняю мою проблему дня

в следующем коде, я публикую объекты

мой вопрос, возможно ли опубликовать время, когда было сделано сообщение?

postbackend = () =>{
const config = {    
method: "POST",
headers: {
  "Content-Type": "application/json",
},
body: JSON.stringify({...this.state, items:this.props.items}),
};
const url = entrypoint + "/alluserpls"; 
fetch(url, config)
.then(res => res.json())
.then(res => {
  if (res.error) {
    alert(res.error);
  } else {
    alert(`ajouté avec l'ID ${res}!`);
  }
}).catch(e => {
  console.error(e);
}).finally(()=>this.setState({ redirect: true }));
}

Я просто хотел бы восстановить время, когда был сделан пост. У вас есть идея, как это исправить? Neff

Ответы [ 3 ]

1 голос
/ 18 февраля 2020
body: JSON.stringify({...this.state, created: new Date().toISOString(), items:this.props.items})

Это добавит метку времени к телу POST.

Вам следует принять во внимание тот факт, что это считается плохой практикой. Потому что пользователи могут иметь разное время на своих компьютерах. Это может привести к несоответствиям. Лучший способ решить эту проблему - установить дату / время на сервере.

1 голос
/ 18 февраля 2020

Если вы хотите отправить время с запросом, вы можете просто добавить его в тело запроса следующим образом:

JSON.stringify({...this.state, items:this.props.items, postTime: Date.now()})

Date.now() возвращает время в миллисекундах с 1 января 1970 года. https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date

Если вы хотите отформатировать его в строку, вы можете сделать следующее:

const dateNow = Date.now(); // Date in milliseconds since 1st January 1970
const date = new Date(dateNow); //Creates a date object from the milliseconds

console.log(dateNow); 
console.log(date);
console.log(date.toLocaleString('en-GB', { timeZone: 'UTC' }));

Надеюсь, это поможет вам.

1 голос
/ 18 февраля 2020
postbackend = () => {
    startDate = new Date(); // add this date
    const config = {
        method: "POST",
        headers: {
            "Content-Type": "application/json",
        },
        body: JSON.stringify({
            ...this.state,
            items: this.props.items
        }),
    };
    const url = entrypoint + "/alluserpls";
    fetch(url, config)
        .then(res => res.json())
        .then(res => {
            if (res.error) {
                alert(res.error);
            } else {
                alert(`ajouté avec l'ID ${res}!`);
            }
        }).catch(e => {
            console.error(e);
        }).finally(() => this.setState({
            redirect: true
        }));
    return startDate; // return it
}

После этого вы получаете дату для каждого postbackend:

const date1 = postbackend();
const date2 = postbackend();
const date3 = postbackend();

Вы можете сохранить их в списке

const dates = [];
dates.push(postbackend());

Сохранить их в БД и т. Д. на

...