我的日期为YYYY-MM-DD
格式 - 定义为this.queryDate
。这设置为2017-04-05
我想在我的系统中显示两个按钮。第一个以5th April 2017
格式显示日期。第二个按钮应该是第二天。
actionSheet.addButton({text: this.queryDate });
actionSheet.addButton({text: [this.queryDate + 1 day] });
我不确定如何更改日期格式,然后将24小时添加到我的开始日期。我是Angular 2的新手,但这就是我用PHP实现它的方法。这是我丑陋的Angular2 + PHP杂种代码..
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中实现这一目标?
答案 0 :(得分:3)
您的代码与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日午夜的MS数量(我认为)。然后你加1天,以毫秒为单位。最后,new Date(...);
将你的号码解析回日期。
如果您的日期格式为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,它们确实具有更容易日期格式化的功能。
答案 1 :(得分:0)
我建议使用Moment.js进行日期操作。它为本机JavaScript日期对象提供了一个包装器。在这样做时,Moment.js扩展了功能,并且还解决了对象中的一些缺陷。
moment().add(1, 'days').format('D MMMM YYYY');
你甚至可以使用日历输出,它会处理今天,明天......等等你的事情。
https://momentjs.com/docs/#/displaying/calendar-time/
如果您的项目中没有包含时刻且不想添加大依赖项。还有像日期fns这样的替代品。