2017-08-30 27 views
1

我知道這是一個特定的問題,但我一直在momentjs docs的地方,我一直無法找到一種方法來做下面的事情。將字符串'Tomorrow'轉換爲momentjs

moment().fromString('tomorrow') 
// 'The date of tomorrow' 
moment().fromString('next week') 
// 'The date of next week' 
moment().fromString('yesterday') 
// 'The date of yesterday' 

我知道這是一個completelly本發明的方法,但是,有沒有辦法讓日期爲tomorrow,或next weekyesterday,而不必專門傳遞參數。 把它放在一起,有沒有辦法讓一個語言詞法簡歷恢復到日期?

PS:我知道我可以做moment().add(1, 'day'),它會給我明天的日期,問題是,我想知道是否有一本字典已經與tomorrownext weekin 2 days?等等,這可能是「人性化」的日期。

+1

相關:https://github.com/moment/moment/issues/2415 –

+0

@AdrianoRepetti我只是讀,也許我可以在聯繫此問題時創建一個功能請求,以查看是否有方法創建一個將「人性化」日期轉換爲時刻的Dict? –

+1

是的,這是我經常想念的功能,我很樂意看到它在瞬間(特別是因爲它主要是翻譯文件的工作,至少對於基本用法) –

回答

1

我擔心,有沒有內置的方法來映射tomorrownext week到力矩值。

反正你可以創建你fromString將它moment.fn

Moment原型是通過moment.fn暴露。如果你想添加你自己的功能,那就是你放置它們的地方。

下面的例子:

moment.fn.fromString = function(param){ 
 
    if(param === 'tomorrow'){ 
 
    return this.clone().add(1, 'day'); 
 
    } else if(param === 'next week'){ 
 
    return this.clone().add(1, 'week'); 
 
    } else if(param === 'yesterday'){ 
 
    return this.clone().subtract(1, 'day'); 
 
    } 
 
    
 
    return this; 
 
} 
 

 

 
console.log(moment().fromString('tomorrow').format()) 
 
console.log(moment().fromString('next week').format()) 
 
console.log(moment().fromString('yesterday').format())
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

+0

對我來說,這似乎更像是一個詞典詞彙暴露問題。 他們已經有很多的友好日期中涉及的字符串的邏輯,但不是其他方式,無論如何謝謝你的答案:)'fromString'只是一個例子btw –

+0

還是我想避免的東西,但似乎這將是我現在必須做的,爲了使代碼的工作:( –

+1

@AjjandroVales是的,'fromString'只是一個簡單的例子'moment.fn'(我發佈它,因爲你在評論中說過你想要豐富library_)我明白一個帶有「if」列表的函數並不是你想要的,但是我擔心沒有內置的字典可以幫助你(甚至在https://github.com/moment/moment/issues/2415沒有建議的解決方案)。我將upvoted添加到收藏夾中,以查看是否有人提供了您想要的解決方案。 – VincenzoC

0

您可以創建條件,其中如果用戶選擇/鍵入此字符串。打印相應的時刻,如此等等。

if(str == 'tomorrow') 
{ 
moment().add(1, 'day')} 
} 
+2

這正是我試圖避免的情況,我不想爲所有用戶可以放置明天日期的情況製作字典,因此我想使用庫對於這一點,如果不只是豐富圖書館:) –