2015-01-04 62 views
1

這是Podio的問題。我有一個計算字段,設置爲返回一個日期,如果我只輸入對該項目中的日期字段的引用,那麼它就可以做到這一點。我想要的是計算字段返回一個空日期(作爲IF語句的一部分),從而將字段留空或使字段爲空(因此不會顯示在日曆中)。在podio中設置計算日期字段爲空(並因此用javascript)

事情是這樣的:

var date = DateFieldFromPodioItem; 

if (whatever) { 
moment(date).add(2, "weeks").toDate(); 
} 
else { 
//RETURN NULL HERE 
}; 

我已經嘗試設置var zero = null並將它返回。這給我一個Invalid date錯誤。

我也嘗試使用​​與.setHours(null,null,null,null)一起設置date並返回。我將date設置爲0001年1月1日12:00:00.000 AM,正如某個地方所建議的那樣(我忘記了在哪裏閱讀過)。第一個讓我非常不友善:Invalid value datetime.datetime(1753, 9, 12, 22, 43, 41, 128000) (datetime): Dates before year 1900 are not supported。第二個也是這樣,在()中有略微不同的數字。

我甚至嘗試過在else內輸入無代碼的相當愚蠢的想法,但是這也返回Invalid date

任何想法?

---- ----編輯

原來,即使波迪奧顯示消息Invalid date它可以讓您保存現場反正和更改字段值時,因此,如果= FALSE它表明不再日期計算領域。感謝Rainer Grabowski爲我指出了這一點。如果有人@Podio讀到這個,或許可以解決這個問題? 我會在這裏留下來或許可以幫助別人,因爲我經常在這裏找到我的問題的答案。

+0

沒有 「空日期」。 JavaScript(即ECMAScript)日期對象基於[*時間值*](http://ecma-international.org/ecma-262/5.1/#sec-15.9.1.1),這是數毫秒之前或在時代之後(1970-01-01T00:00:00Z)。 'new Date(value)'(其中* value *是可選的)的結果將是一個有效的Date對象或'NaN'(假定不拋出錯誤)。 – RobG 2015-01-04 10:42:19

+0

感謝Rob!我不應該被跑道返回的錯誤信息所拋棄。特別是'無效日期'。它甚至可以讓我保存錯誤消息的行爲,因爲它應該。 else中的'null'工作得很好。 – Kevin 2015-01-04 23:09:14

回答

0

應該工作,但我沒有測試:

var date = DateFieldFromPodioItem; 
var returnValue = null; 

if (whatever) { 
    returnValue = moment(date).add(2, "weeks").toDate(); 
} 

returnValue;