La manipulation de type de données Datetime entre javascript et WebApi 2
Je voudrais savoir si le suivant est la bonne méthode pour gérer les type de données datetime dans WebApi 2, Javascript et base de données.
DateTime à partir de Javascript pour WebApi:
var date = new Date();
var datestring = date.toISOString();
//Send datestring to WebApi
DateTime de WebApi Javascript:
//on getting datetime value from `http.get` call
var dateFromServer = new Date(dateFromServer);
WebApi:
Entrant date
- ne rien faire il suffit de stocker le
datestring
retourné dans la base de données de la colonne avec le type de donnéesdatetime
Se date à partir de la base de données et de Retourner la date de client:
- pas datetime manipulation (il suffit de le retourner comme par WebApi sérialiseur Json ex: 2015-10-23T18:30:00). Client les convertir automatiquement au format UTC datetime locales datetime
OriginalL'auteur Shyamal Parikh | 2015-10-26
Vous devez vous connecter pour publier un commentaire.
Oui si vous ne voulez pas gérer toutes les informations sur le Fuseau horaire etc... c'est une façon acceptable.
Assurez-vous juste que à tout moment vous voulez une date produites à partir du serveur pour une comparaison ou quelque chose d'autre pour utiliser le c# DateTime.UtcNow
la méthode.
Je pense Avoir un "Global UTC Convention" son très coffre-fort et de la bonne solution, mais elle a des limites.
Par exemple, si vous souhaitez Alerter l'ensemble de vos utilisateurs situés dans des fuseaux horaires différents à 09:00 (de chaque pays), alors il est impossible de savoir quand son "09:00" pour chacun.
Une façon de résoudre ce problème(et c'est celui que je préfère), est de stocker manuellement à chaque utilisateur du fuseau horaire info séparément sur la base de données, et chaque fois que vous voulez faire une comparaison simplement de convertir le temps.
Alternativement, si vous souhaitez stocker toutes les informations de fuseau horaire sur le serveur, vous pouvez :
Envoyer votre date de javascript sur le serveur en utilisant le format suivant :
"2014-02-01T09:28:56.321-10:00" ISO 8601 prend également en charge les fuseaux horaires, en remplaçant le Z avec + ou – de la valeur pour le décalage horaire.
Déclarer votre site WEB API 2 types Date avec le "DateTimeOffset" type.
Enfin stocker vos dates dans la base de données à l'aide de la "datetimeoffset" type.
De cette façon tout le temps sur le serveur ou la base de données, vous disposez de toutes les informations au sujet de l'utilisateur de l'heure et du fuseau horaire.
Vous trouverez cet article utile
OriginalL'auteur Anestis Kivranoglou