2014-02-17 66 views
13

我有兩個輸入字段用於在日期之間進行搜索。我希望開始日期默認爲當年的第一天,結束日期默認爲今天。我有結束日期,但我不確定如何得到它dsplay明星使用Moment.js獲取當年的第一天

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

回答

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

這個答案比[這個答案]更好(http://stackoverflow.com/a/39252190/199712)?如果是這樣,爲什麼? –

+0

下面的評論利用時刻更有效「moment()。startOf('year');」 –

+0

@JasonSwett可能只是因爲它已經在2014年得到了答案,而更有效地使用時刻的答案在兩年多後才發佈。是的,我知道你一年前問過這個問題:) –

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

如果你不想使用Moment.js,這個答案對我來說似乎最好。 –

47

你可以這樣做:

moment().startOf('year'); 

format做這樣的事情:

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

這是一個很好的答案!但是,它並不實際工作,因爲它需要更新爲moment()。startOf('year')而不是moment.startOf('year')。 –

+3

是的,你是對的。我糾正了它。謝謝。 – m007

+0

請注意,'startOf'突變了一個原始值。如果不需要,使用'.clone()。startOf('year');' –

相關問題