2017-08-22 19 views
1

こんにちはすべて私は瞬間jsを使用するタスクに取り組んでいるので、何をしたいのですか?toggl.comカウンタのような分、秒、時間をカウントするカウンタを作っています。私はstartという入力フィールドを持っていますもう1つは、私は開始から終了を差し引いてカウンタ値をそれに置き換えたいとします。カウンターは現在の値から現在の値に戻って0:00:10start is: 01:15 PMend is : 01:30 PMです。結果は値00:15この値は0:00:10にあるカウンタの現在の値を0:15:00に置き換え、この値からカウンタを開始し、通常のカウンタとして0:15:01と秒を加算します。toggl.comの意味を理解してください。 2 /私は10のように任意の数の開始値の値を変更し、時間がPMであれば、ここで10 PMない10 AM 私のコードは、valモーメントjsカウンタ

validate(val:string) { 
    let temp =this.startTime; 
    let parsedTime = moment(val, "hh:mm A"); 
    if(parsedTime.isValid()) { 
    this.startTime = parsedTime.format('hh:mm A') 
    } else { 
    this.startTime = "temp"; 
    console.log("no"); 
    } 
    } 

ことを行うことができないとして、それを考慮すれば、私が欲しいです私は予期しない形式を入力した場合、それは以前の有効な時間ではなく、temp文字列私はthis.startTime = this.StartTimeを試してみましたが、それは動作しません私は妥当性を確認したいtoggl.comのように見える enter image description here

とthi sが、これは、この動作

startPause() {// when click on play button 
this.bs = moment(); 
this.startTime = this.bs.format('hh:mm A'); 
this.play = false; 
this.pause = true; 

let sec= 0; 
let min = 0; 
let hour = 0; 
this.countup = setInterval(() => { 
    if(sec === 59) { 
    min++; 
    sec = 0; 
    }else if(min > 59) { 
    hour++; 
    min = 0; 
    }else { 
    sec++; 
    } 
    this.timer = `${this.pad(hour)}:${this.pad(min)}:${this.pad(sec)}`; 
}, 1000); 

} 

答えて

0
App.directive("timerup", function(Util,$interval,$timeout){ 
    return { 
    scope: { start: '=' }, 
    require: "?ngModel", 
    //template: "<input type='text' readonly class='form-control' ng-model='value' > ", 
    link: function(scope, element, attrs, ngModel){ 

     if (!ngModel) return; 

     ngModel.$render = function(){ 
      scope.value = ngModel.$modelValue; 
     }; 

     var timeout = 0; 
     $interval(function() { 
      if((scope.start)){ 
       //factory('Util', [function() { 
       return element.text(Util.dhms(Math.floor((new Date().getTime() - scope.start.getTime())/ 1000))); 
      } 
     }, 1000); 

     function onTimeout() { 
      //timeout = timeout +1; 
      timeout++; 
     } 
    } 
    }; 
}); 
App.factory('Util', [function() { 
    return { 
     dhms: function (t) { 
      var days, hours, minutes, seconds; 
      days = Math.floor(t/86400); 
      t -= days * 86400; 
      hours = Math.floor(t/3600) % 24; 
      t -= hours * 3600; 
      minutes = Math.floor(t/60) % 60; 
      t -= minutes * 60; 
      seconds = t % 60; 
      return [ 
       (days)? days + 'd': '', 
       (hours)? hours + 'h':'', 
       minutes + 'm', 
       seconds + 's' 
      ].join(' '); 
     } 
    }; 
}]); 

<span timerup ng-model="model" start="start"</span> 

開始のための希望1 =初期の日である私は期待していないいくつかのために自分の仕事と私のカウンタコードです

関連する問題