Eine bessere Möglichkeit, den JavaScript-Client-Zeitzone-Offset und für das Gebietsschema für die ASP.NET-Web-API zu komJavaScript

Javascript-Forum
Anonymous
 Eine bessere Möglichkeit, den JavaScript-Client-Zeitzone-Offset und für das Gebietsschema für die ASP.NET-Web-API zu kom

Post by Anonymous »

Kürzlich entdeckte unsere QA einen Fehler, an dem das Datum in einem Vue.js-Dreifeld-DOB-DOB (DATUM) EDITOR DEDEUS (Tag, Monat, Jahr) zu der ASP.NET-Web-API gelangt, mit einem Wert mit einem Wert als Tag , bevor das, was eingetragen ist, und auch mit einer Zeit von 2300 Stunden. Objekt in der DOB -Editor Vue.js Kontrolle anstelle des Datums als JS -String , aber erst kürzlich kam wir (in Großbritannien) von Winter GMT zu Summer Daylight Saving Hour (BST). Der DOB -Editor nimmt die Werte in seinen Feldern und liefert den Wert dem übergeordneten VUE zurück, auch als JS -Datum . Dies: < /p>

Code: Select all

[HttpPost("authenticate")]
public async Task Authenticate(PatientAuthenticationRequestDTO dto)
{
...
< /code>
Das DTO sieht so aus: < /p>
public class PatientAuthenticationRequestDTO
{
[Required]
[MaxLength(10)]
public string PatientNumber { get; set; }

[Required]
public DateTime DateOfBirth { get; set; }
}
Der betreffende Wert wird in der Datum des Datums von Eigenschaft
Der Datumswert wird in der folgenden Eigenschaft einer Struktur enthalten.// Convert the date of birth to ISO for the API call
const dateOfBirthWithClientOffset = this.form.dateOfBirth;
const clientOffsetOffsetModifier = -dateOfBirthWithClientOffset.getTimezoneOffset();
const ticksMultiplier = 1000;
const secondsMultiplier = 60;
const dateOfBirthWithClientOffsetInTicks = dateOfBirthWithClientOffset.getTime() + clientOffsetOffsetModifier * ticksMultiplier * secondsMultiplier;
const dateOfBirthWithClientOffsetInUTC = new Date(dateOfBirthWithClientOffsetInTicks);
const dateformattedForDotNetSerialisation = dateOfBirthWithClientOffsetInUTC.toISOString();

// Call the API to authenticate the patient
this.$http.post(this.$endpoints.api.patient.authenticate, { patientNumber: this.form.patientNumber, dateOfBirth: dateformattedForDotNetSerialisation })
.then((response) => {
...
< /code>
Diese Lösung fühlt sich, obwohl sie arbeiten, sehr schwer und einfach falsch an. Sicherlich gibt es eine prägnantere Möglichkeit, ein JavaScript -Daten an eine ASP.NET -Web -API zu senden und das Gebietsschema und das Rettungssschalt zu berücksichtigen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post