Javascript 两次约会之间有几天

Javascript 两次约会之间有几天,javascript,Javascript,我正在尝试运行这个函数,当我将开始日期和结束日期的格式设置为DD/MM/YYYY时,JavaScript的格式为MM/DD/YYYY 是否有任何方法可以使我的日期格式保持为DD/MM/YYYY,并获得开始日期和结束日期之间的差异切勿使用新日期(字符串),因为它取决于用户的区域设置 您应该将日期字符串分为年、月和日,然后调用newdate(年、月-1、日) 您可以使用getTime查找天数。在JavaScript中操作日期时间时,我可以介绍一下吗?原始日期对象有很多角案例。如果您使用MomentJ

我正在尝试运行这个函数,当我将开始日期和结束日期的格式设置为DD/MM/YYYY时,JavaScript的格式为MM/DD/YYYY

是否有任何方法可以使我的日期格式保持为DD/MM/YYYY,并获得开始日期和结束日期之间的差异

切勿使用
新日期(字符串)
,因为它取决于用户的区域设置

您应该将日期字符串分为年、月和日,然后调用
newdate(年、月-1、日)

您可以使用
getTime
查找天数。

在JavaScript中操作日期时间时,我可以介绍一下吗?原始日期对象有很多角案例。如果您使用MomentJS,则可以使用该方法


使用MomentJS的另一个好处是,从现在起3个月后,当您回到逻辑时,代码是可读的,它允许您调整时区等奇怪的事情。

尝试自己处理日期格式

var start_date = moment(sd);
var end_date = moment(ed);

var days = end_date.diff(start_date, "days");

console.log(days); // should be the integer you want to test

@ivan Plenty我试过你在答案上写的东西,但仍然不起作用,同样的,它需要的是一个月的第一天而不是第二天first@user3060271您评论的答案错误:)
var start_date = moment(sd);
var end_date = moment(ed);

var days = end_date.diff(start_date, "days");

console.log(days); // should be the integer you want to test
function parseDate(str) {
    var d = str.split('/')
    return new Date(parseInt(d[2]),parseInt(d[1]) - 1, parseInt(d[0]));
}
function countdays(){

var oneday = 24*60*60*1000;

var start_date = parseDate($('#sdate').val());
var end_date = parseDate($('#edate').val());


var days = Math.floor((start_date.getTime() - end_date.getTime())/(oneday));

alert(days);
}