javascript - 如何计算两个日期的天数
问题描述
我想从两个日期计算天数 我的日期格式dd-mmm-yyyy
就像"10-Nov-2020"
任何人都可以帮助我吗?
<script>
var deFromDate;
var deToDate;
var statarr;
function deFromDateChanged(s, e) {
deFromDate = (s.GetInputElement().value)
//statarr = deFromDate.split('-');
}
function deToDateChanged(s, e) {
deToDate = (s.GetInputElement().value)
var Difference_In_Time = deToDate.getTime() - deFromDate.getTime();
var Difference_In_Days = Difference_In_Time / (1000 * 3600 * 24);
alert(Difference_In_Days);
}
</script>
我收到错误getTime()
是否有任何其他方法可以做同样的事情
解决方案
使用Date.parse()
(尽管由于实现不一致而不鼓励使用)
function datediff(first, second) {
return Math.round((second-first)/(1000*60*60*24));
}
const deFromDate = Date.parse('10-Nov-2020');
const deToDate = Date.parse('15-Nov-2020');
console.log(datediff(deFromDate, deToDate));
手动解析
var months = {
'Jan' : 1,
'Feb' : 2,
'Mar' : 3,
'Apr' : 4,
'May' : 5,
'Jun' : 6,
'Jul' : 7,
'Aug' : 8,
'Sep' : 9,
'Oct' : 10,
'Nov' : 11,
'Dec' : 12
}
function parseDate(str) {
var [dd, mmm, yyyy] = str.split('-');
return new Date(yyyy, months[mmm]-1, dd); // months are 0 indexed
}
function datediff(first, second) {
return Math.round((second-first)/(1000*60*60*24));
}
const deFromDate = parseDate('10-Nov-2020');
const deToDate = parseDate('15-Nov-2020');
console.log(datediff(deFromDate, deToDate));
推荐阅读
- sed - 如何使用 sed 在图案前打印线条
- javascript - 如何通过每个对象项的属性名称过滤一组对象?
- python - 使用 pandas 顺序评估多列上的字符串
- javascript - Vue Navigation Guard 无限重定向
- angular - 无法使用 angular-material 12.2 更改占位符颜色
- javascript - 我可以在“InteractionCreate”事件中传递信息吗?如果是怎么办?
- html - 如何移动到其他行
标签?
- javascript - 为运行项目创建脚本
- java - startActivity 还有一个用于Bundle的可选参数,使用此方法并在目标活动中检索bundle的正确方法是什么
- tonejs - 如何替换tone js采样器中的声音?