php - online - strtotime to date
Agregue la cantidad de horas "x" hasta la fecha (10)
Actualmente tengo php obtener la fecha / hora actual así:
$now = date("Y-m-d H:m:s");
Lo que me gustaría hacer es tener una nueva variable $new_time
igual a $now
+ $hours
. $hours
es una cantidad de horas que oscila entre 24-800.
¿Alguna sugerencia?
Otra solución (orientada a objetos) es usar DateTime :: add
Ejemplo:
$now = new DateTime(); //current date/time
$now->add(new DateInterval("PT{$hours}H"));
$new_time = $now->format(''Y-m-d H:i:s'');
Puede usar php.net/manual/en/function.strtotime.php para lograr esto:
$new_time = date("Y-m-d H:i:s", strtotime(''+3 hours'', $now)); // $now + 3 hours
Puede usar algo como la función php.net/manual/en/function.strtotime.php para agregar algo a la marca de tiempo actual. $new_time = date("Ymd H:i:s", strtotime(''+5 hours''))
.
Si necesita variables en la función, debe usar comillas dobles, como strtotime("+{$hours} hours")
, sin embargo, mejor use strtotime(sprintf("+%d hours", $hours))
luego.
Puedes probar lib Ouzo golosinas , y hazlo de manera fluida:
echo Clock::now()->plusHours($hours)->format("Y-m-d H:m:s");
Las API permiten múltiples operaciones.
También puede usar el tiempo de estilo de Unix para calcular:
$newtime = time() + ($hours * 60 * 60); // hours; 60 mins; 60secs
echo ''Now: ''. date(''Y-m-d'') ."/n";
echo ''Next Week: ''. date(''Y-m-d'', $newtime) ."/n";
Um ... tus minutos deben corregirse ... ''i'' es por minutos. No meses. :) (Tuve el mismo problema para algo también).
$now = date("Y-m-d H:i:s");
$new_time = date("Y-m-d H:i:s", strtotime(''+3 hours'', $now)); // $now + 3 hours
Uso la siguiente función para convertir el valor de fecha y hora normal al formato de fecha y hora de mysql.
private function ampmtosql($ampmdate) {
if($ampmdate == '''')
return '''';
$ampm = substr(trim(($ampmdate)), -2);
$datetimesql = substr(trim(($ampmdate)), 0, -3);
if ($ampm == ''pm'') {
$hours = substr(trim($datetimesql), -5, 2);
if($hours != ''12'')
$datetimesql = date(''Y-m-d H:i'',strtotime(''+12 hour'',strtotime($datetimesql)));
}
elseif ($ampm == ''am'') {
$hours = substr(trim($datetimesql), -5, 2);
if($hours == ''12'')
$datetimesql = date(''Y-m-d H:i'',strtotime(''-12 hour'',strtotime($datetimesql)));
}
return $datetimesql;
}
Convierte valores de fecha y hora como,
2015-06-04 09:55 AM -> 2015-06-04 09:55
2015-06-04 03:55 PM -> 2015-06-04 15:55
2015-06-04 12:30 AM -> 2015-06-04 00:55
Espero que esto ayude a alguien.
Correcto
Puede usar strtotime () para lograr esto:
$new_time = date("Y-m-d H:i:s", strtotime(''+3 hours'', strtotime($now))); // $now + 3 hours
$now = date("Y-m-d H:i:s");
date("Y-m-d H:i:s", strtotime("+1 hours $now"));
$date_to_be-added="2018-04-11 10:04:46";
$added_date=date("Y-m-d H:i:s",strtotime(''+24 hours'', strtotime($date_to_be)));
Una combinación de funciones date() y php.net/manual/en/function.strtotime.php hará el truco.