J'ai mis dans mon schéma mangouste le createdDate
pour chaque nouvelle personne qui doit être créée et affichée dans le tableau mais qui ne peut pas être modifiée, donc je l'ai fait dans le schéma mangouste. Mais quand j'obtiens la date sur le frontend pour la mettre dans le tableau, je mappe d'abord. tous les éléments dans les éléments js et lorsque j'appelle la date dans un autre fichier où ma table est avec les accessoires date, je ne peux pas formater ma date en aucun cas pour être comme jj / MM / aaaa ou quelque chose de similaire à la place, je reçois comme 2020-11-13T12:37:05.637Z
. Quelqu'un peut-il m'aider à savoir comment formater la date que je reçois des accessoires et de la base de données.
C'est là que j'appelle la date des accessoires.
const mongoose = require("mongoose"); const Schema = mongoose.Schema; const personSchema = new Schema({ name: { type: String, required: true }, surname: { type: String, required: true }, city: { type: String, required: true }, address: { type: String, required: true }, phone: { type: Number, required: true }, createdDate: { type: Date, default: Date.now} }); module.exports = mongoose.model("Persons", personSchema);
Et c'est là que je le mappe une fois que je l'ai obtenu du backend.
return ( <table className="table"> <thead> <tr> <th>ID</th> <th>NAME</th> <th>SURNAME</th> <th>CITY</th> <th>ADDRESS</th> <th>PHONE</th> <th>CREATED DATE</th> <th>ACTION</th> </tr> </thead> {props.items.map((person) => ( <PersonItems key={person.id} id={person.id} name={person.name} surname={person.surname} city={person.city} address={person.address} phone={person.phone} date={person.createdDate} onDelete={props.onDeletePerson} /> ))} </table> ); };
Et c'est mon schéma.
return ( <React.Fragment> {error && <Errormsg error={error} />} <tbody className="table"> <tr> <td>{props.id}</td> <td>{props.name}</td> <td>{props.surname}</td> <td>{props.city}</td> <td>{props.address}</td> <td>{props.phone}</td> <td>{props.date}</td> <td> <Button> <Link to={`/person/${props.id}`}>Edit</Link> </Button> <Button onClick={deleteHandler}>Delete</Button> </td> </tr> </tbody> </React.Fragment> ); };
5 Réponses :
Vous pouvez utiliser momentjs pour cela
Pour obtenir le résultat souhaité, vous pouvez l'utiliser comme ceci
<td>{moment(props.date).format("DD/MM/YYYY")}</td>
Ajoutez simplement la ligne ci-dessus à l'endroit où vous souhaitez afficher la date dans ce format.
L'avantage de cette approche est que vous pouvez modifier le format exactement selon vos besoins en modifiant la chaîne de format.
@Stefan Great, pensez à marquer la réponse comme réponse acceptée pour aider les futurs utilisateurs
try new Date('2020-11-13T12:37:05.637Z').toLocaleString()
la sortie sera comme 11/13/2020, 2:37:05 PM
si vous avez utilisé la fonction de division comme new Date('2020-11-13T12:37:05.637Z').toLocaleString().split(',')[0]
vous obtiendrez 11/13/2020
ce dont vous avez besoin d'après ce que je comprends
Si vous souhaitez utiliser un autre package pour cela, vous devez absolument utiliser moment.js
Les réponses précédentes ont fonctionné mais merci beaucoup brooo
package moment
installation - npm install moment --save
- npm install moment --save
import moment from "moment"; <td>{moment(props.date).format("DD/MM/YYYY")}</td>
Exemple de code - https://codesandbox.io/s/trusting-antonelli-4r1qw?file=/src/App.js:200-257
MERCI BEAUCOUP, ÇA MARCHE <3 <3 <3
Une option (pour éviter les momentsjs) est d'utiliser l'API Intl:
const date = (new Intl.DateTimeFormat).formatToParts(new Date("01-01-80")) console.log(`${date1[0].value}/${date1[2].value}/${date1[4].value}`) // outputs 01/01/80
la solution à ce problème est:
vous devez télécharger un troisième package appelé moment
Si vous l'utilisez dans reactjs
vous pouvez l'importer comme
import dayjs from "dayjs"; <p >{dayjs(createdAt).fromNow()}</p>
dayjs
import moment from "moment"; <p> Ordered on : {moment(order.createdAt).fromNow()} </p>