JSFiddle - React, Tailwind, and code Playground
by Ivan Ferrer
HTML
<div ng-app="iCountdown">
<i-countdown set-date-start="2015-08-29 10:10:00" set-date-end="2015-08-29 10:11:30" format-view="%d dias %h hs %i min %s sg" expire-message="Fim de jogo"></i-countdown>
</div>
JavaScript
angular.module('iCountdown', [])
.directive("iCountdown", function () {
return {
restrict: "EAC",
scope: {
setDateStart: "@",
setDateEnd: "@",
expireMessage: "@",
formatView: "@"
},
replace: true,
template: "<div><div></div></div>",
link: function (scope, element) {
var insertDate = function() {
scope.setMessageExpired(scope.expireMessage);
if (angular.isDefined(scope.setDateStart) && angular.isDefined(scope.setDateEnd)) {
scope.setDateStarter(scope.setDateStart);
scope.setDateFinal(scope.setDateEnd);
}
scope.start();
};
scope.$watch('setDateEnd', function() {
insertDate();
}, true);
var _end = new Date();
var _start = new Date();
var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour * 24;
var params = {
second:_second,
minute:_minute,
hour: _hour,
day: _day,
interval: null,
messageFinal: 'expired!',
format:'Y-m-d H:i:s',
dateEnd: '2015-09-29 10:10:30',
dateStart: '2015-09-29 10:11:00'
};
scope.setMessageExpired = function(message) {
params.messageFinal = message;
};
scope.setMessageInitial = function(message) {
params.messageInitial = message;
};
scope.setId =...