2012-04-12 8 views
2

Ich baue eine App mit Knockout, die mit einer großen Anzahl von Daten in verschiedenen Phasen funktioniert. Natürlich haben sie diesen Unsinn alle haben am Ende schlägt:Rückkehr sauber, Zeitzone freie Termine in JS

T05:00:00.000Z 

Gibt es eine saubere Art und Weise die Daten einfach Jahr-Monat-Tag sein, alle zu haben, ohne greifen meine eigenen Verkettungen zu machen? Ich weiß, ich kann dies tun:

getYear() . getMonth() + 1 . getDate() 

... aber das wäre in meinem Fall, angesichts der Tatsache, unhandlich bekommen, dass es mehrere Orte in meinem Code, die Daten sind spuckt

Gibt es eine saubere Funktion, die mir einfach ein einfaches Datum geben wird? Vielleicht eine Art Anpassung an den Date-Prototyp?

Ich sollte erwähnen, dass, da dies eine Knockout-App ist, die Daten in Observablen gespeichert sind. Das Problem besteht darin, dass beim Speichern des Datums in JSON die Daten sauberer formatiert werden.

+0

"Ein Haufen Datteln" ... was heißt das? – Pointy

+0

Viele. Viele. Tonnen. Ein Bündel. Verschiedene Orte in meiner App geben Daten zurück. –

Antwort

3

Hier kommt das Konzept der Abstraktionen ins Spiel. Da Sie wirklich nur mit 3 einfachen Funktionen zu tun, die Sie nicht wollen, immer und immer wieder zu wiederholen, wieder in Ihrem Code, schreiben Sie einfach eine Hilfsfunktion und verwenden Sie dann, dass in Ihrem Code:

function getFormattedDate() { 
    return getYear() . getMonth() + 1 . getDate(); 
} 

Dann, wenn Sie müssen das Datum, laufen:

var d = getFormattedDate(); 

oder

alert(getFormattedDate()); 

oder

Um Ihre getFormattedDate Funktion aus dem globalen Bereich, und sicherzustellen, dass Sie nicht mit einer anderen Implementierung von getFormattedDate in Konflikt stehen, verwenden Namespacing:

var myUtils = { 
    getFormattedDate: function() { 
     return getYear() . getMonth() + 1 . getDate(); 
    } 
}; 

dann rufen Sie es wie:

alert(myUtils.getFormattedDate()); 
+0

Danke Mann. Ich hätte erwähnen sollen, das ist eine App, die ich in Knockout baue, und die Daten werden in Observables gespeichert. Das Problem besteht darin, dass beim Speichern des Datums in JSON die Daten sauberer formatiert werden. –

+0

Konnte es nicht besser gesagt haben –

+1

@BenjaminAllison - Dies sollte immer noch für Sie arbeiten. Regelmäßiges JavaScript sollte theoretisch gut mit Knockout funktionieren. Ich bin nicht vertraut mit Knockout, aber es kann einige "Best Practice" oder alternative Methode zum Schreiben eigener Funktionen geben. Ich werde diese Frage damit aktualisieren, wie ich persönlich diese Funktion definieren würde. – jmort253