我在Angular应用程序中使用的时刻版本为2.24.0
(我确实有一个较旧的版本,但已更新以查看是否可以解决此问题,但没有解决)。
我有以下代码
import * as moment from 'moment';
import 'moment-duration-format';
....
public static formatTime(dateTime: Date): string {
// To test am subtracting 5 days from today..
dateTime.setDate(dateTime.getDate() - 5);
// dateTime now show Tuesday, which is correct
let result = moment().calendar(dateTime);
// Result show Sunday! (wrong)
return result;
}
我要减去5天只是为了测试calendar()
格式。
可以看出,calendar()
显示的是星期天(今天),但应该是星期二。
有人知道任何解决方法吗?
在此先感谢您的帮助!
[UPDATE1]
为此here添加了一个示例(代码)
有关代码,请参见script.js。
答案 0 :(得分:0)
如果给setDate函数赋予5:
dateTime.setDate(dateTime.getDate() - 5);
您获得正确的时间-5毫秒。
要获得X天前的奖励,您需要提供:
let today = new Date()
5DaysAgo = new Date(today .getTime() - (5 * 24 * 60 * 60 * 1000));
答案 1 :(得分:0)
既然您正在使用瞬间,为什么不仅仅使用它呢?特别是,不要操纵Date
,而要用动量减去5天...
console.log(moment(new Date()).subtract(5, 'days').calendar());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js"></script>
答案 2 :(得分:-1)
尝试
let result = moment().calendar(dateTime.getDate());