从momentJS倒计时返回的日期格式不正确

时间:2016-10-14 19:53:48

标签: angularjs momentjs countdown

我使用了来自https://github.com/icambron/moment-countdown的简单脚本来进行简单的倒计时。我正在使用下面的代码。

  

二手代码:

$interval(function(){

    $scope.nextDate = moment().countdown($scope.nextDateGet,
        countdown.DAYS|countdown.HOURS|countdown.MINUTES|countdown.SECONDS
    );

    $scope.daysCountdown = moment($scope.nextDate).format('dd');
    $scope.hoursCountdown = moment($scope.nextDate).format('hh');
    $scope.minutesCountdown = moment($scope.nextDate).format('mm');
    $scope.secondsCountdown = moment($scope.nextDate).format('ss');

},1000,0);
  

这样可以提供正确的输出

$scope.nextDate.toString();

但是这包含一个字符串,其余的天,小时,分钟和秒。所以我决定用这个将这个字符串分成4个字符串:

$scope.daysCountdown = moment($scope.nextDate).format('dd');
$scope.hoursCountdown = moment($scope.nextDate).format('hh');
$scope.minutesCountdown = moment($scope.nextDate).format('mm');
$scope.secondsCountdown = moment($scope.nextDate).format('ss');
  

输入示例

2016-10-15 10:00:00 // $scope.nextDateGet
  

所需的输出是这样的:

0 // (days)
12 // (hours)
24 // (minutes)
30 // (seconds)
  

但我似乎无法格式化其余的日子,我得到了这个输出:

Fr // Shortcode for the day the item is scheduled => I need the remaining days in this case that would be 0. The other formatting is correct.

1 个答案:

答案 0 :(得分:0)

  

如果剩余天数不是0,则以下输出正确:

{1, 2, 3}
  

如果剩余天数为0,则会在14天设置剩余天数,因此这项工作可以解决问题:

$scope.daysCountdown = moment($scope.nextDate).format('D'); 

欢迎任何改进此代码的建议。