【问题标题】:Difference between two dates moment.js两个日期之间的差异 moment.js
【发布时间】:2018-04-27 08:51:30
【问题描述】:

我有一个格式化的date,它是一个字符串"19/04/2018",我需要将它与今天的日期进行比较,并知道已经过去了多少天。

我正在尝试这种方式,但它无法正常工作。

var stringDate =  $scope.dataAddOutpatient.date; //Return "19/04/2018" 
var today = moment().format("DD/MM/YYYY");
var date = moment(stringDate);

//Difference in number of days
var dates = moment.duration(date.diff(today)).asDays();

总是return 0。怎么了?

在我看到的比较 type string 对象的示例中,我需要将它与 type moment 的对象进行比较。

【问题讨论】:

标签: angularjs momentjs


【解决方案1】:

$('#test').click(function() {
    var startDate = moment("13/04/2016", "DD/MM/YYYY");
	var currenDate = moment(new Date()).format("DD/MM/YYYY");
	var endDate = moment(currenDate, "DD/MM/YYYY");
    var result = 'Diff: ' + endDate.diff(startDate, 'days');
    $('#result').html(result);
});
#test {
  width: 100px;
  height: 100px;
  background: #ffb;
  padding: 10px;
  border: 2px solid #999;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.js"></script>

<div id='test'>Click Me!!!</div>
<div id='result'></div>

更多信息 - moment js - two dates difference in number of days

【讨论】:

  • 在本例中,比较两个字符串类型的对象,我需要将它们与矩类型对象进行比较。当前日期将为我提供一个时刻对象。
  • @Bibi,我们可以得到当前日期为字符串var currenDate = moment(new Date()).format("DD/MM/YYYY");
  • 未捕获的类型错误:currenDate.diff 不是函数
【解决方案2】:

基于moment.jsdocumentation,我们来看看他们的建议:

var dateA = moment([2007, 0, 29]);
var dateB = moment([2007, 0, 28]);
dateA.diff(dateB, 'days'); // result is 1

试试这个方法,能不能解决你的问题。

【讨论】:

    【解决方案3】:
    var toDay= moment();
    var startDate = moment('2017-11-09');
    console.log('Milliseconds:',toDay.diff(startDate));
    console.log('days:', toDay.diff(startDate, 'days'), 'days');
    console.log('months:', toDay.diff(startDate, 'months'));
    

    【讨论】:

    • var toDay= moment(); var startDate = moment(stringDate); console.log('毫秒:',toDay.diff(startDate)); console.log('days:', toDay.diff(startDate, 'days'), 'days'); console.log('months:', toDay.diff(startDate, 'months'));
    • 毫秒:NaN 天:NaN 天月:NaN
    • 检查“stringDate”变量。 var stringDate='2017-09-23';然后使用上面的 diff 方法。
    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 2012-04-18
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2011-10-29
    相关资源
    最近更新 更多