1

I want to convert this to AngularJS, but I don't know where to start

// Set the date we're counting down to
    var countDownDate = new Date("Oct 1, 2022 15:37:25").getTime();
    // Update the count down every 1 second
    var x = setInterval(function() {

      // Get todays date and time
      var now = new Date().getTime();

      // Find the distance between now an the count down date
      var distance = countDownDate - now;

      // Time calculations for days, hours, minutes and seconds
      var days = Math.floor(distance / (1000 * 60 * 60 * 24));
      var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
      var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
      var seconds = Math.floor((distance % (1000 * 60)) / 1000);

      $('#clock-days').text(days);
      $('#clock-hours').text(hours);
      $('#clock-minutes').text(minutes);
      $('#clock-seconds').text(seconds);     
    }, 1000);

First problem is that Math function is not available and how to write interval?

1
  • where Math not available? angularjs or angular? Commented Aug 26, 2017 at 7:40

1 Answer 1

3

You can just replace the setInterval with $interval in the controller, then change the var variables to scope variables, please study the below fiddle to identify the differences.

DEMO: JSFiddle

var app = angular.module('myApp', []);
app.controller('MyController', ['$scope', '$interval', function($scope, $interval) {
    var countDownDate = new Date("Oct 1, 2022 15:37:25").getTime();
    // Update the count down every 1 second
    var x = $interval(function() {

      // Get todays date and time
      var now = new Date().getTime();

      // Find the distance between now an the count down date
      var distance = countDownDate - now;

      // Time calculations for days, hours, minutes and seconds
      $scope.days = Math.floor(distance / (1000 * 60 * 60 * 24));
      $scope.hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
      $scope.minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
      $scope.seconds = Math.floor((distance % (1000 * 60)) / 1000);   
    }, 1000);
}]);    
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.