【发布时间】:2020-02-08 18:42:07
【问题描述】:
我有几天、几个月和几年。我在他们之间做计算。这意味着我必须将 2 年 3 个月零 10 天除以 1/4。现在我有以下代码:
const getCurrentDate = moment().format("YYYY-MM-DD");
const timeEnd = moment(moment(DefEndDate).format("YYYY-MM-DD"));
const diff = timeEnd.diff(getCurrentDate);
const diffDuration = moment.duration(diff);
const diffCount = moment.duration(diff).asDays();
console.log(diffCount);
console.log("Years:", diffDuration.years());
console.log("Month:", diffDuration.months());
console.log("Days:", diffDuration.days());
const diffCount = moment.duration(diff).asDays(); //Get it as days
const [unserve, setUnserve] = useState(''); //set value to variable
const res = unserve.split('/'); //split 1/4 to 1.4
const x = parseFloat(res[0] + "." + res[1]); //convert it to float
var quotient = Math.floor(diffCount/x); //calculate
console.log(quotient);
//returned 832 / 1.4 = 594 days
现在我需要将输出数字(天)返回到年、月和日。我不能那样做。我该如何转换?还有一个问题是,这种方式能成为最优解吗?
【问题讨论】:
-
@GennadyDogaev 谢谢,但我需要在没有额外库的情况下这样做。
-
@OktamYaqubov 好吧,你已经在使用 momentjs...
-
2 years 3 months--- 哪一年哪几个月?一年或一个月的天数不是恒定的 -
一个月可以是 28、29、30 或 31 天。一年可以是 365 或 366。那么你将如何处理呢? 2018年12月30日到2019年3月1日你想要什么结果,2019年12月30日到2020年3月1日你想要什么结果?
标签: javascript date momentjs