-
Notifications
You must be signed in to change notification settings - Fork 0
/
time_difference.htm
197 lines (165 loc) · 7.28 KB
/
time_difference.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=Generator content="Microsoft Word 15 (filtered)">
<link rel="stylesheet" href="css/ligne.min.css?v1.2">
<link rel="stylesheet" href="css/menu.css">
<link rel="stylesheet" href="css/code_style.css">
<script src="js/includes.js"></script>
<script src="js/rainbow-custom.min.js"></script>
<script src="js/php.js"></script>
<title>Modelo</title>
<title>Time Differencia</title>
<style>
/* Font Definitions */
* {
font-family: Verdana, sans-serif;
}
/*Estilo del codigo php*/
p.MsoNormal, li.MsoNormal, div.MsoNormal {
margin-top: 0cm;
margin-right: 0cm;
margin-bottom: 8.0pt;
margin-left: 0cm;
line-height: 1.5rem;
font-size: 14pt;
font-family: "Calibri", sans-serif;
}
pre {
mso-style-link: "HTML con formato previo Car";
margin: 0cm;
margin-bottom: .0001pt;
font-size: 10.0pt;
font-family: "Courier New";
}
</style>
</head>
<body>
<div class="container-fluid">
<div w3-include-html="includes/tabla_contenido.html"></div>
<!--incluyendo el menu-->
<div w3-include-html="includes/menu.html"></div>
<!--incluyendo el menu-->
<div class="panel bordered">
<div class="body">
<div class="panel bordered">
<div class="body">
<p class=MsoNormal><b><span style='font-size:16.0pt;line-height:107%'>Diferencia
de tiempo entre fechas</span></b></p>
<p class=MsoNormal>Como parte del utilitario de Ligne existe la clase llamada <b>TimeDiff</b>
para realizar cálculos de diferencia de tiempo entre fechas;</p>
<pre>
<code data-language="php">
//Hacemos uso de la clase
use TimeDifference\TimeDiff;
//Creamos una instancia de la clase
$new_time = new TimeDiff('2018-10-12','2018-10-15');
//Obtenemos su resultados y lo mostramos por pantalla
var_dump($new_time->timeDiff());
</code>
</pre>
<p class=MsoNormal>Esto retorna un arreglo asociativo como el siguiente;</p>
<pre>
<code data-language="php">
array (size=5)
'total_days' =>
array (size=2)
0 => string '12' (length=2)
1 => string '15' (length=2)
'first_day_time' => int 61200
'last_day_time' => int 61200
'timeDiff' => int 122400
'total_time' => int 0
</code>
</pre>
<p class=MsoNormal ><span lang=EN-US></span><code class="code">total_days</code> Es el total de los días que pasaron entre las 2 fechas.</p>
<p class=MsoNormal ><code class="code">First_day_time</code> Es el
total de segundos que existe en el primer día.</p>
<p class=MsoNormal><code class="code">last_day_time</code> Es el total
de segundos que existe en el último día.</p>
<p class=MsoNormal><code class="code">timeDiff</code> Es el total de
tiempo en segundos que existe entre las 2 fechas.</p>
</div>
</div>
<div class="panel bordered">
<div class="body">
<p class=MsoNormal><b><span style='font-size:16.0pt;line-height:107%'>Consideraciones</span></b></p>
<p class=MsoNormal>Hay algunas cosas a considerar en este ejemplo y es que a la
hora de instanciar la clase se deben especificar algunos datos como parámetro;</p>
<p class=MsoNormal><code class="code">$start_date</code>Fecha inicial.</p>
<p class=MsoNormal><code class="code">$end_date</code>Fecha Final.</p>
<p class=MsoNormal><code class="code">$start_work_hour</code> Hora de inicio de la jornada, por
defecto es 8:00:00.</p>
<p class=MsoNormal><code class="code">$end_work_hour</code> Hora de fin de jornada, por defecto es
17:00:00.</p>
<p class=MsoNormal>Estos 2 parámetros se refieren en caso de que se deban de
tomar en consideración horas no hábiles dentro de la diferencia de tiempo, si
se quiere tener la diferencia neta estos dos valores deben ser especificados de
la siguiente manera 00:00:00 y 23:59:59 respectivamente.</p>
<p class=MsoNormal><code class="code">$hours_per_day</code> cantidad de horas por día.</p>
<p class=MsoNormal>En caso que las fechas superen los 2 días y se pretenda
obtener tiempo hábil, por ejemplo, en una jornada laboral de 8:00:00 a 17:00:00
las horas hábiles son 8, se dio el rango de 2018-10-15 a 2018-10-18 el
resultado es;</p>
<pre>
<code data-language="php">
$new_time = new TimeDiff('2018-10-15','2018-10-18','08:00:00','17:00:00',8);
</code>
</pre>
<pre>
<code data-language="php">
array (size=5)
'total_days' =>
array (size=4)
0 => string '15' (length=2)
1 => string '16' (length=2)
2 => string '17' (length=2)
3 => string '18' (length=2)
'first_day_time' => int 61200
'last_day_time' => int 61200
'timeDiff' => int 180000
'total_time' => int 57600
</code>
</pre>
<p class=MsoNormal>Tenemos que han pasado 4 días entre estas fechas y un tiempo
total transcurrido entre ellas.</p>
</div>
</div>
<div class="panel bordered">
<div class="body">
<p class=MsoNormal><b><span style='font-size:16.0pt;line-height:107%'>Días de
semana hábiles</span></b></p>
<p class=MsoNormal>Otra facilidad que tiene esta clase es que le puedes
especificar cuáles son los días hábiles en la semana, por ejemplo, de lunes a
viernes. Esto es gracias a un array que recibe 2 posiciones;</p>
<p class=MsoNormal><code class="code">$work_days = array(dia_inicio,dia_final);</code></p>
<p class=MsoNormal>Por defecto estos están establecidos en 1 y 5
respectivamente y significa que el lunes (1) es el primer día hábil y viernes
(5) es el último día hábil por lo que restan el 6(sábado) y 7(domingo).</p>
<pre>
<code data-language="php">
$new_time = new TimeDiff('2018-10-15',
'2018-10-18',
'08:00:00',
'17:00:00',
8,
array(1,5)
);
</code>
</pre>
<p class=MsoNormal>Por último, También recibe un arreglo como parámetro para
los días festivos.</p>
</div>
</div>
</div>
</div>
<!--incluyendo el pie de pagina-->
<div w3-include-html="includes/pie_pagina.html"></div>
<script>
includeHTML();
</script>
<!--incluyendo el pie de pagina-->
</div>
</body>
</html>