Last active
February 22, 2019 20:56
-
-
Save alphp/8d59f29088c3af9a19a90e03d8912461 to your computer and use it in GitHub Desktop.
Dates calculation sample https://lab.fawno.com/2015/11/03/calculos-con-fechas-en-php/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
ini_set('date.timezone', 'Europe/Madrid'); | |
define('HT', "\x09"); // \x09 \t Horizontal Tab | |
define('LF', "\x0A"); // \x0A \n Line feed | |
// Calculamos el inicio del DST: último domingo de marzo (2015-03-29 00:00:00 para 2015). | |
$date10 = strtotime('last sunday of march'); | |
echo strftime('$date10 = strtotime("last sunday of march"); => %Y-%m-%d %H:%M:%S', $date10), LF; | |
// Añadimos un día a $date10 de la manera correcta (2015-03-30 00:00:00 para 2015). | |
$date11 = strtotime('+1day', $date10); | |
echo strftime('$date11 = strtotime("+1day", $date10); => %Y-%m-%d %H:%M:%S', $date11), LF; | |
// Añadimos un día a $date10 de la manera incorrecta (2015-03-30 01:00:00 para 2015). | |
$date12 = $date10 + 86400; | |
echo strftime('$date12 = $date10 + 86400; => %Y-%m-%d %H:%M:%S', $date12), LF; | |
echo LF; | |
// Calculamos el final del DST: último domingo de octubre (2015-10-25 00:00:00 para 2015). | |
$date20 = strtotime('last sunday of october'); | |
echo strftime('$date20 = strtotime("last sunday of october"); => %Y-%m-%d %H:%M:%S', $date20), LF; | |
// Añadimos un día a $date20 de la manera correcta (2015-10-26 00:00:00 para 2015). | |
$date21 = strtotime('+1day', $date20); | |
echo strftime('$date21 = strtotime("+1day", $date20); => %Y-%m-%d %H:%M:%S', $date21), LF; | |
// Añadimos un día a $date20 de la manera incorrecta (2015-10-25 23:00:00 para 2015). | |
$date22 = $date20 + 86400; | |
echo strftime('$date22 = $date20 + 86400; => %Y-%m-%d %H:%M:%S', $date22), LF; | |
echo LF; | |
// Calculamos la diferencia entre fechas de manera incorrecta, nos dará 82800 segundos (23 horas) para el inicio del DST. | |
$date_diff12 = $date11 - $date10; | |
echo '$date_diff12 = $date11 - $date10; => ', $date_diff12, ' segundos = ' , $date_diff12 / 3600, ' horas', LF; | |
// Calculamos la diferencia entre fechas de manera correcta, nos dará un día exacto. | |
$date_diff11 = date_diff(new DateTime(date('Y-m-d H:i:s', $date10)), new DateTime(date('Y-m-d H:i:s', $date11)))->format('%R %y años, %m meses, %d días, %h horas, %i minutos, %s segundos'); | |
echo '$date_diff11 = date_diff(new DateTime(date("Y-m-d H:i:s", $date10)), new DateTime(date("Y-m-d H:i:s", $date11))); => ', $date_diff11, LF; | |
echo LF; | |
// Calculamos la diferencia entre fechas de manera incorrecta, nos dará 90000 segundos (25 horas) para el final del DST. | |
$date_diff22 = $date21 - $date20; | |
echo '$date_diff22 = $date21 - $date20; => ', $date_diff22, ' segundos = ' , $date_diff22 / 3600, ' horas', LF; | |
// Calculamos la diferencia entre fechas de manera correcta, nos dará un día exacto. | |
$date_diff21 = date_diff(new DateTime(date('Y-m-d H:i:s', $date20)), new DateTime(date('Y-m-d H:i:s', $date21)))->format('%R %y años, %m meses, %d días, %h horas, %i minutos, %s segundos'); | |
echo '$date_diff21 = date_diff(new DateTime(date("Y-m-d H:i:s", $date20)), new DateTime(date("Y-m-d H:i:s", $date21))); => ', $date_diff21, LF; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment