2014-02-17 12 views
13

Ich habe zwei Eingabefelder zwischen Daten zu suchen. Ich möchte, dass das Startdatum standardmäßig auf den ersten Tag des aktuellen Jahres und das Enddatum auf den Standardwert von heute festgelegt wird. Ich habe das Enddatum, aber ich bin nicht sicher, wie man es bekommt den SternErhalten Sie den ersten Tag des aktuellen Jahres mit Moment.js

var defaultStart = 
var defaultEnd = moment((new Date()).valueOf()); 
$('#searchStart').val(defaultStart.format('DD/MM/YYYY')); 
$('#searchEnd').val(defaultEnd.format('DD/MM/YYYY')); 

Antwort

2
var thisYear = (new Date()).getFullYear();  
var start = new Date("1/1/" + thisYear); 
var defaultStart = moment(start.valueOf()); 
+0

Ist diese Antwort besser als [diese Antwort] (http://stackoverflow.com/a/39252190/199712)? Wenn ja warum? –

+0

Der folgende Kommentar unter Verwendung des Moments ist effizienter "moment(). StartOf ('year');" –

+0

@JasonSwett wahrscheinlich nur, weil es im Jahr 2014 beantwortet wurde, während die Antwort mit dem effizienteren Zeitpunkt wurde mehr als zwei Jahre später veröffentlicht. Ja, mir ist bewusst, dass Sie diese Frage vor einem Jahr gestellt haben. –

3
var defaultStart = '01/01/'+new Date().getFullYear() 
+0

Wenn Sie Moment.js nicht verwenden möchten, scheint mir diese Antwort am besten zu sein. –

-7

den ersten Tag des laufenden Jahres zu Dsplay ist immer 1

47

Sie könnten dies tun:

moment().startOf('year'); 

format durch so etwas wie dies zu tun:

moment().startOf('year').format('MM/DD/YYYY'); 
+2

Dies ist eine ausgezeichnete Antwort! Es funktioniert jedoch nicht wirklich, weil es aktualisiert werden muss, um Moment() zu sein. StartOf ('Jahr') statt moment.startOf ('Jahr'). –

+3

Ja, Sie haben Recht. Ich habe es korrigiert. Vielen Dank. – m007

+0

Beachten Sie, dass 'startOf' einen ursprünglichen Wert mutiert. Wenn dies nicht erforderlich ist, verwenden Sie '.clone(). StartOf ('year');' –

Verwandte Themen