2017-04-05 158 views
1

我有一個YYYY-MM-DD格式的日期 - 這被定義爲this.queryDate。這設置爲2017-04-05Angular2日期格式化並添加一天

我想在我的系統中顯示兩個按鈕。第一個以格式5th April 2017顯示日期。第二個按鈕應該是第二天。

actionSheet.addButton({text: this.queryDate });   
actionSheet.addButton({text: [this.queryDate + 1 day] }); 

我不確定如何更改日期格式,然後將24小時添加到我的開始日期。我是Angular 2的新手,但這是我如何使用PHP實現的。這是我醜陋的Angular2 + PHP mongrel代碼..

actionSheet.addButton({text: date("jS M Y", strtotime(this.queryDate)) });    
actionSheet.addButton({text: date("jS M Y", strtotime(this.queryDate)+(60*60*24)) });    

我該如何在Angular 2中實現這一點?

回答

2

您的代碼與JavaScript中的工作方式非常相似。

new Date((new Date(this.queryDate)).getTime() + (60*60*24*1000)); 

並把它與你的代碼相結合:

actionSheet.addButton({text: new Date((new Date(this.queryDate)).getTime() + (60*60*24*1000)) }); 

講解,new Date('1990 04 03')解析您的日期字符串到一個新的日期變量。 .getTime()獲取時間時間戳從午夜1980年1月1日(我認爲)。然後添加1天,以毫秒爲單位。最後,new Date(...);解析你的電話號碼回日期。

您可能注意到,(MS數如果日期格式爲YYYY-MM-DD,那麼你的日期不能正確解析。當我試用它時,我預計它會有幾個小時的時間,因爲它給了我GMT時間,而不是我的時區,但是如果我以YYYY MM DD的格式給出它的日期,它會在我的時區中完成。默認的日期解析工具並不是JS中最好的,遺憾的是

如果你想使用特定的時區,我會建議使用類似moment.js的東西來解析日期,因爲它更搶劫烏斯季。

You can learn more about JS date parsing here.

編輯

我也忘了提,有沒有簡單的方法來輸出特定格式的JS日期,所以你可能有它使用getDate()自己手藝吧,getMonth() ,和getFullYear()。如果你選擇使用moment.js,他們確實具有更簡單日期格式的功能。

+0

太好了。謝謝 – Chris

0

我建議使用Moment.js進行日期操作。它爲原生JavaScript日期對象提供了一個包裝器。在這樣做的過程中,Moment.js擴展了功能並解決了對象中的幾個缺陷。

moment().add(1, 'days').format('D MMMM YYYY');  

你甚至可以使用日曆輸出,它會處理像今天,明天......爲你的東西。

https://momentjs.com/docs/#/displaying/calendar-time/