2016-10-14 8 views
0

私は単純なカウントダウンを行うにはhttps://github.com/icambron/moment-countdownからこの単純なスクリプトを使用しました。以下のコードは私が使用しています。momentJSのカウントダウンから返された不正な日付形式

使用されるコード:

$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(); 

を与えるしかし、これは、残りの日数を1つの文字列が含まれています時間、分、および秒。だから、私はこれを使って、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) 

しかし、私はremainings日フォーマットすることができないよう、私はこの出力を得る:

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. 
+0

'$ scope.daysCountdown = moment($ scope.nextDate).format( 'D');'が有効であるようです。残りの日数が「0」の場合のみ動作します。残りの日数は「14」に設定されます。 –

+0

'$ scope.nextDate.toString()'が正しい出力を持っていて、それを4に分割したいだけなら、 '$ scope.nextDate.toString()。split( '、')'を4つの文字列の配列を取得しますか?デモサイトの出力で判断して、 'countdown()'の出力で 'moment()'を呼びたいとは思っていません。 –

+0

@Mike McCaughan Trueのような自動書式のテキスト... Days ... Hours ... Minuts ...文字列から秒を削除する必要があります。 –

答えて

0

残り日数が0でなかった場合は、次の出力は正しかったです:

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

残りの日は、それはので、この作業は周りのトリックでした14で残り日数設定します0だった場合:

if(moment($scope.nextDate).isSame(moment(), 'day')){ 
    $scope.daysCountdown = 0; 
} else { 
    $scope.daysCountdown = moment($scope.nextDate).format('D'); 
} 

このコードを改善するための任意の提案は常に歓迎されています。

関連する問題