$mifecha = new DateTime();
$mifecha->modify('-5 hours');
$mifecha->modify('+30 minute');
$mifecha->modify('-30 second');
echo $mifecha->format('d-m-Y H:i:s');
Mostrando entradas con la etiqueta Fechas y hora. Mostrar todas las entradas
Mostrando entradas con la etiqueta Fechas y hora. Mostrar todas las entradas
Sumar/restar horas, minutos o segundos a la fecha actual
Obtener fecha del día anterior
$today = date('y-m-d');
$yest = date('y-m-d',strtotime("-1 days"));
Si no queremos que saque los del fin de semana:
$timestamp = time();
$dayOfWeek = date('D', $timestamp);
if($dayOfWeek == 'Mon') { // es lunes (sacar el del viernes)
$yest = date('y-m-d',strtotime("-3 days"));
$today = date('y-m-d',strtotime("-2 days"));
}
MySQL: Obtener aquellos registros cuya fecha sea los últimos 3 días
select * from contents WHERE publication_date >= (CURDATE() - INTERVAL 3 DAY)
Safari: Mostrar formato fecha en Safari
A la hora de componer los dias, meses y años que faltan para un evento en Safari no sale bien, para arreglarlo hay que hacerlo así:
function parseDate(input) {
var parts = input.match(/(\d+)/g);
return new Date(parts[0], parts[1]-1, parts[2]);
}
function getTime() {
fecha_actual = new Date();
fecha_evento = parseDate("<?=$db->Record['fecha_inicio']?>");
dias = (fecha_evento - fecha_actual) / 1000 / 60 / 60 / 24;
dias = Math.floor(dias);
horas = (fecha_evento - fecha_actual) / 1000 / 60 / 60 - (24 * dias);
horas = Math.floor(horas);
minutos = (fecha_evento - fecha_actual) / 1000 /60 - (24 * 60 * dias) - (60 * horas);
minutos = Math.floor(minutos);
if (dias < 100) {
$('.contador_dias').html(("0" + dias).slice (-2));
} else {
$('.contador_dias').html(("0" + dias).slice (-3));
}
$('.contador_horas').html(("0" + horas).slice (-2));
$('.contador_minutos').html(("0" + minutos).slice (-2));
newtime = window.setTimeout("getTime();", 20000);
}
Fechas: sacar de la BD aquellos registros si la fecha actual es superior a una hora a la guarda en el campo de la tabla
$sql = "select * where TIME_TO_SEC(TIMEDIFF(NOW(), update_at))>(1*3600)";
Fechas: mostrar un intervalo de fecha de mes anterior o mes siguiente dependiendo del día en el que estemos
Si es día 25 o superior mostrará de este mes actual más el proximo (sino del mes anterior al actual):
$fecha_inicio = date('j') < 25 ? date('Y-m-25', strtotime('-1 month')) : date('Y-m-25');
$fecha_final = date('j') < 25 ? date('Y-m-25') : date('Y-m-25', strtotime('+1 month'));
echo $fecha_inicio . ' a ' . $fecha_final;
Fechas: distancia entre dos fechas
$fecha1 = date_create('2019-03-11 19:10:01');
$fecha2 = date_create('2019-03-13 20:11:15');
$result = date_diff($fecha1, $fecha2);
echo $result->format('Han sido %a días en total.<br>Han pasado %y años, %m meses, %d días, %H horas, %I minutos, %S segundos.');
Obtener distancia entre fechas
<!DOCTYPE html>
<html>
<head>
<meta charset="iso-8859-1">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
</head>
<body>
<script>
var calday = "0";
var calmon = "0";
var calyear = "0";
var curday = "0";
var curmon = "0"
var curyear = "0";
$(function() {
$("#btnCalcular").click(function() {
calday = $("#diaInit").val();
calmon = $("#mesInit").val();
calyear = $("#annoInit").val();
curday = $("#diaFinal").val();
curmon = $("#mesFinal").val();
curyear = $("#annoFinal").val();
calage();
});
});
function isNum(arg)
{
var args = arg;
if (args == "" || args == null || args.length == 0)
{
return false;
}
args = args.toString();
for (var i = 0; i<args.length; i++)
{
if ((args.substring(i,i+1) < "0" || args.substring(i, i+1) > "9") && args.substring(i, i+1) != ".")
{
return false;
}
}
return true;
}
function checkday(aa)
{
var val = aa.value;
var valc = val.substring(0,1);
if(val.length>0 && val.length<3)
{
if(!isNum(val) || val == 0)
{
aa.value="";
}
else if( val < 1 || val > 31)
{
aa.value=valc;
}
}
else if(val.length>2)
{
val = val.substring(0, 2);
aa.value=val;
}
}
function checkmon(aa) {
var val = aa.value;
var valc = val.substring(0,1);
if(val.length>0 && val.length<3)
{
if(!isNum(val) || val == 0)
{
aa.value="";
}
else if(val < 1 || val > 12)
{
aa.value=valc;
}
}
else if(val.length>2)
{
val = val.substring(0, 2);
aa.value=val;
}
}
function checkyear(aa) {
var val = aa.value;
var valc = val.substring(0,(val.length-1));
if(val.length>0 && val.length<7)
{
if(!isNum(val) || val == 0)
{
aa.value=valc;
}
else if(val < 1 || val>275759)
{
aa.value="";
}
}
else if(val.length>4)
{
aa.value=valc;
}
}
function checkleapyear(datea) {
if(datea.getYear()%4 == 0)
{
if(datea.getYear()% 10 != 0)
{
return true;
}
else
{
if(datea.getYear()% 400 == 0)
return true;
else
return false;
}
}
return false;
}
function DaysInMonth(Y, M) {
with (new Date(Y, M, 1, 12)) {
setDate(-2);
return getDate();
}
}
function datediff(date1, date2) {
var y1 = date1.getFullYear(), m1 = date1.getMonth(), d1 = date1.getDate(),
y2 = date2.getFullYear(), m2 = date2.getMonth(), d2 = date2.getDate();
if (d1 < d2) {
m1--;
d1 += DaysInMonth(y2, m2);
}
if (m1 < m2) {
y1--;
m1 += 12;
}
return [y1 - y2, m1 - m2, d1 - d2];
}
function calage() {
html = "";
if(curday == "" || curmon=="" || curyear=="" || calday=="" || calmon=="" || calyear=="") {
alert("Por favor, rellena todos los campos y vuelve a calcular");
}
else {
var curd = new Date(curyear,curmon-1,curday);
var cald = new Date(calyear,calmon-1,calday);
var diff = Date.UTC(curyear,curmon-1,curday,0,0,0)- Date.UTC(calyear,calmon-1,calday,0,0,0);
var dife = datediff(curd,cald);
if(checkleapyear(cald)==true) {
// document.cir.val.value = dife[0]+" años, "+dife[1]+" meses, y "+dife[2]+" dÃas";
html += dife[0]+" años, "+dife[1]+" meses, y "+dife[2]+" días";
}else{
// document.cir.val.value = dife[0]+" años, "+dife[1]+" meses, y "+dife[2]+" dÃas";
html += dife[0]+" años, "+dife[1]+" meses, y "+dife[2]+" días";
}
var secleft = diff/1000/60;
var hrsleft = secleft/60;
var daysleft = hrsleft/24;
// document.cir.val1.value=daysleft+" dÃas";
html += "<br>"+daysleft+" dias en total";
var as = parseInt(calyear)+dife[0]+1;
}
$("#zonaShow").html(html);
}
calage();
</script>
<div id="zonaShow"></div>
<p> Día inicial: <input type="text" id="diaInit"></p>
<p> Mes inicial:
<select id="mesInit">
<option value=1>Enero</option>
<option value=2>Febrero</option>
<option value=3>Marzo</option>
<option value=4>Abril</option>
<option value=5>Mayo</option>
<option value=6>Junio</option>
<option value=7>Julio</option>
<option value=8>Agosto</option>
<option value=9>Septiembre</option>
<option value=10>Octubre</option>
<option value=11>Noviembre</option>
<option value=12>Diciembre</option>
</select>
</p>
<p> Año inicial: <input type="text" id="annoInit"></p>
<hr>
<p> Día Final: <input type="text" id="diaFinal"></p>
<p> Mes Final:
<select id="mesFinal">
<option value=1>Enero</option>
<option value=2>Febrero</option>
<option value=3>Marzo</option>
<option value=4>Abril</option>
<option value=5>Mayo</option>
<option value=6>Junio</option>
<option value=7>Julio</option>
<option value=8>Agosto</option>
<option value=9>Septiembre</option>
<option value=10>Octubre</option>
<option value=11>Noviembre</option>
<option value=12>Diciembre</option>
</select>
</p>
<p> Año Final: <input type="text" id="annoFinal"></p>
<p><input type="button" id="btnCalcular" value="Calcular"></p>
</body>
</html>
Fechas: Obtener en la bd una fecha dentro de un periodo
// Saca aquellas empresas que justo dentro de 3 meses tenga la fecha_caducidad
SELECT * FROM empresa WHERE fecha_caducidad = DATE_ADD(curdate(), INTERVAL 3 MONTH)
// Sacar aquellos pedidos cuya fecha sea superior a 3 horas
SELECT id_pedido FROM pedido WHERE estado='pendiente' AND TIME_TO_SEC(TIMEDIFF(NOW(), fecha))>(3*3600)
// Sacar aquellas empresas en las que la fecha actual esté entre la fecha de activación y la fecha de caducidad
select * from empresa where CURDATE() BETWEEN fecha_activacion AND fecha_caducidad
// Sacar diferencia entre días, meses, años, etc entre dos fechas
SELECT DATEDIFF(day, '2014/09/28','2019/05/31') AS diasDif;
SELECT DATEDIFF(month, '2014/09/28','2019/05/31') AS mesesDif;
SELECT DATEDIFF(year, '2014/09/28','2019/05/31') AS annosDif;
// Obtener los años, meses y días que han pasado entre una fecha y la fecha actual
SELECT (
SELECT TIMESTAMPDIFF( YEAR, '2014-09-28', CURDATE( ) )
) AS ANIOS, (
SELECT (
TIMESTAMPDIFF(
MONTH , '2014-09-28', CURDATE( ) )
) - ( TIMESTAMPDIFF( YEAR, '2014-09-28', CURDATE( ) ) *12 )
) AS MESES, (
SELECT DATEDIFF( CURDATE( ) , DATE_ADD( DATE_ADD( '2014-09-28', INTERVAL TIMESTAMPDIFF( YEAR, '2014-09-28', CURDATE( ) ) YEAR ) , INTERVAL( TIMESTAMPDIFF(
MONTH , '2014-09-28', CURDATE( ) ) ) - ( TIMESTAMPDIFF( YEAR, '2014-09-28', CURDATE( ) ) *12 )
MONTH ) )
) AS DIAS
Más información en: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
Detectar si es fin de semana
function isWeekend($date) {
return (date('N', strtotime($date)) >= 6);
}
Fecha: Sumar días a una fecha
$fecha = date('Y-m-j');
$newfecha = strtotime ( '+2 day' , strtotime ( $fecha ) );
$newfecha = date ( 'Y-m-j' , $newfecha );
Para sumar horas a una fecha:
$fecha = date('Y-m-d H,i,s', (strtotime ("+2 Hours")));
También se pueden sumar y restar semanas, meses y años:
$newfecha = strtotime ('+1 week', strtotime($fecha));
$newfecha = strtotime ('-2 week', strtotime($fecha));
$newfecha = strtotime ('+3 month', strtotime($fecha));
$newfecha = strtotime ('-4 month', strtotime($fecha));
$newfecha = strtotime ('+5 year', strtotime($fecha));
$newfecha = strtotime ('-6 year', strtotime($fecha));
Fechas: SQL para obtener el tiempo transcurrido entre dos fechas
// Que te devuelva la diferencia en días
SELECT username, TIMESTAMPDIFF(DAY, fecha_alta, fecha_fin) as diferencia FROM usuarios where id = 10
// Que te devuelva la diferencia en segundos
SELECT username, TIMESTAMPDIFF(SECOND, fecha_alta, fecha_fin) as diferencia FROM usuarios where id = 10
// Tiempo transcurrido entre dos fechas
$fecha1 = new DateTime("2015-05-31 02:30:31");
$fecha2 = new DateTime("2015-07-03 03:41:50");
$fecha = $fecha1->diff($fecha2);
printf('%d años, %d meses, %d días, %d horas, %d minutos', $fecha->y, $fecha->m, $fecha->d, $fecha->h, $fecha->i);
Fechas: Pasar una fecha a formato español
function fechaToSpanish($fecha) {
$arr = explode(" ", $fecha);
$fecha = $arr[0];
$arrAux = explode("-",$fecha);
$fechaSpanish = $arrAux[2]."/".$arrAux[1]."/".$arrAux[0];
$fechaSpanish .= " ".$arr[1];
return $fechaSpanish;
}
// *******************************
function fFecha($fecha) {
list($anno, $mes, $dia) = explode("/", $fecha);
return ($dia . "-".$mes . "-" . $anno);
}
// *******************************
function fFechaConMes($fecha) {
list($anno, $mes, $dia) = explode("/", $fecha);
setlocale(LC_TIME, 'spanish');
$nMes = strftime("%B",mktime(0, 0, 0, $mes, $dia, $anno));
return ($dia . " de ".$nMes . " de " . $anno);
}
Fechas y hora 4: Comparar dos fechas entre sí
function comparar_fechas($fecha1, $fecha2) {
$campos = explode("/",$fecha1);
$fecha1_seg = mktime(0, 0, 0, $campos[1], $campos[0], $campos[2]);
$campos = explode("/", $fecha2);
$fecha2_seg = mktime(0, 0, 0, $campos[1], $campos[0], $campos[2]);
if ($fecha1_seg == $fecha2_seg) { echo "La fecha ".$fecha1." y la fecha ".$fecha2." son idénticas<br>"; }
else {
if ($fecha1_seg < $fecha2_seg) { echo "La fecha ".$fecha1." es más antigua que ".$fecha2."<br>"; }
else { echo "La fecha ".$fecha2." es más antigua que ".$fecha1."<br>"; }
}
}
Si tienes alguna duda/problema en PHP o JQuery, haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible
$campos = explode("/",$fecha1);
$fecha1_seg = mktime(0, 0, 0, $campos[1], $campos[0], $campos[2]);
$campos = explode("/", $fecha2);
$fecha2_seg = mktime(0, 0, 0, $campos[1], $campos[0], $campos[2]);
if ($fecha1_seg == $fecha2_seg) { echo "La fecha ".$fecha1." y la fecha ".$fecha2." son idénticas<br>"; }
else {
if ($fecha1_seg < $fecha2_seg) { echo "La fecha ".$fecha1." es más antigua que ".$fecha2."<br>"; }
else { echo "La fecha ".$fecha2." es más antigua que ".$fecha1."<br>"; }
}
}
Si tienes alguna duda/problema en PHP o JQuery, haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible
Fechas y hora 3: Chequear si una fecha es correcta
<?php
if (checkdate($mes,$dia,$anno)) { ... }
?>
Si tienes alguna duda/problema en PHP o JQuery, haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible
if (checkdate($mes,$dia,$anno)) { ... }
?>
Si tienes alguna duda/problema en PHP o JQuery, haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible
Fecha y hora 2: Obtener la fecha/hora actual del servidor
$fecha = getdate();
echo $fecha["seconds"]."<br>";
echo $fecha["minutes"]."<br>";
echo $fecha["hours"]."<br>";
echo $fecha["mday"]."<br>"; // día del mes
echo $fecha["wday"]."<br>"; // 0 si es domingo, 1 lunes...
echo $fecha["mon"]."<br>"; // número del mes
echo $fecha["year"]."<br>"; // año
echo $fecha["yday"]."<br>"; // días transcurridos desde el 1 de Enero
echo $fecha["weekday"]."<br>"; // Da Sunday
echo $fecha["month"]."<br>"; // Da October
Si tienes alguna duda/problema en PHP o JQuery, haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible
echo $fecha["seconds"]."<br>";
echo $fecha["minutes"]."<br>";
echo $fecha["hours"]."<br>";
echo $fecha["mday"]."<br>"; // día del mes
echo $fecha["wday"]."<br>"; // 0 si es domingo, 1 lunes...
echo $fecha["mon"]."<br>"; // número del mes
echo $fecha["year"]."<br>"; // año
echo $fecha["yday"]."<br>"; // días transcurridos desde el 1 de Enero
echo $fecha["weekday"]."<br>"; // Da Sunday
echo $fecha["month"]."<br>"; // Da October
Si tienes alguna duda/problema en PHP o JQuery, haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible
Fechas y hora 1: Obtener segundos, minutos, horas, día, mes, año y día de la semana
$hora_actual = date("h");
$minuto_actual = date("i");
$segundo_actual = Date("s");
$dia_actual = date("d");
$mes_actual = date("m"); // da en número, ej: 08
$anno_actual = date("Y"); // con 4 cifras, si pones "y" da solo 2 cifras
$dia_semana = date("w"); // da 0 si es domingo, 1 lunes, 2 martes, ...
$segundos_totales = mktime(0,0,0,08,28,2012); // segundos transcurridos desde el 01/01/1970
$fecha = date("d")."/".date("m")."/".date("Y")." a las ".date("H").":".date("i").":".date("s");
Si tienes alguna duda/problema en PHP o JQuery, haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible
$minuto_actual = date("i");
$segundo_actual = Date("s");
$dia_actual = date("d");
$mes_actual = date("m"); // da en número, ej: 08
$anno_actual = date("Y"); // con 4 cifras, si pones "y" da solo 2 cifras
$dia_semana = date("w"); // da 0 si es domingo, 1 lunes, 2 martes, ...
$segundos_totales = mktime(0,0,0,08,28,2012); // segundos transcurridos desde el 01/01/1970
$fecha = date("d")."/".date("m")."/".date("Y")." a las ".date("H").":".date("i").":".date("s");
Si tienes alguna duda/problema en PHP o JQuery, haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible
Suscribirse a:
Entradas (Atom)
