JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.4/angular.min.js"></script>
<body onload="init()">
<div id="count_label_ms"></div>
JavaScript
var Timer = function () {
var end = new Date();
var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour * 24;
var timer;
var params = {
second:_second,
minute:_minute,
hour: _hour,
day: _day,
interval: null,
messageFinal: 'expired!',
id:'date_element',
formatEnter:'Y-m-d H:i:s',
dateEnd: null,
formatView:'%d dias %h horas %i minutos %s segundos'
};
this.setMessageExpired = function(message) {
params.messageFinal = message;
}
this.setId = function(id) {
params.id = id;
}
this.setDate = function(dateVal) {
params.dateEnd = dateVal;
}
var createDateFinal = function(strDate) {
var reggie = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/;
var dateArray = reggie.exec(strDate);
return new Date(
(+dateArray[1]),
(+dateArray[2])-1, // Careful, month starts at 0!
(+dateArray[3]),
(+dateArray[4]),
(+dateArray[5]),
(+dateArray[6])
);
}
this.setView = function(view) {
params.formatView = view;
}
var setFormatViewTime = function(elementsTime) {
return params.formatView
.replace(/%d/gi, elementsTime[0])
.replace(/%h/gi, elementsTime[1])
.replace(/%i/gi, elementsTime[2])
.replace(/%s/gi, elementsTime[3]);
};
this.remaining = function() {
var now = new Date();
end = createDateFinal(params.dateEnd);
var distance = end - now;
if (distance < 0) {
clearInterval(params.interval);
document.getElementById(params.id).innerHTML = params.messageFinal;
return;
}
var days =...