如果两个字符串中的月/年不同,则显示警报

时间:2016-11-24 07:07:20

标签: angularjs asp.net-mvc web-services

我正在用mvc-5 angularjs创建一个网络应用程序,

我需要显示用户输入的以下日期的数据(在文本框中(我有两个文本框)),但是用户只能获取1个月的数据,如果我想看到我可以输入的数据( 01-01-2016)至(31-01-2016)或(29-01-2016)至(31-01-2016)

如果用户输入日期(如(31-01-2016)至(03-02-2016),则警报将显示错误或者如果他输入日期(01-01-2016)至(31 -01-2017),然后还应出现警报, 我的webservice将验证以下字符串(frmdate and dateto

中的数据

我需要在这做什么?

1 个答案:

答案 0 :(得分:0)

您需要做的是找出From日期和To日期之间的差异,并根据您的逻辑检查差异是30天还是31天。

将这些日期字符串保存为Date对象。



var fromDate = new Date($scope.fromDate);
var endDate = new Date($scope.toDate);




为了在任何类型的计算中使用Date对象,我们必须首先检索Date的内部毫秒值,该值存储为一个大整数,因为您不能只添加或减去Date对象在一起。



// Convert both dates to milliseconds
  var fromDate_ms = fromDate.getTime();
  var endDate_ms = endDate.getTime();




然后计算以毫秒为单位的差异

var difference_ms = endDate_ms - fromDate_ms;

要获得给定毫秒数的天数,我们将除以86,400,000,即一天中的毫秒数(1000 x 60秒x 60分钟x 24小时):

var differene_days = Math.round(difference_ms/86400000); 

如果differene_days等于30或31,则显示报告,否则显示错误消息。