¿Cómo agregar “N” días a una variable de Smarty?
Necesito aumentar una fecha en una variable smarty. Esto no será para aumentar los días de una fecha actual como smarty.now, sino para aumentar los días a una variable de fecha de pedido.
Para la fecha actual, el código funciona:
{assign var="estimated_days" value=$smarty.now|date_format:"%u"}
{"+5 days"|strftime|date_format:"%A %e %B"}
Pero al usar esta fórmula en una variable no funciona correctamente porque muestra fechas incorrectas:
{assign var="estimated_days" value=$order.details.order_date|date_format:"%u"}
{"+5 days"|strftime|date_format:"%A %e %B"}
He intentado con {"order.details.order_date +5 Days"|date_format:'%A, %e de %B'}
y múltiples fórmulas, y la conclusión es que la fecha de pedido correcta solo se muestra con la variable {$order.details.order_date}
en formato 10-10-2021, pero cuando se agrega |date_format
, la fecha capturada es como smarty.now
(fecha actual) y no la fecha del pedido.
¿Quizás {assign var="estimated_days" value=$order.details.order_date|date_format:"%u"}
está mal?
¿Cómo puedo agregar X días en una variable smarty {order.details.order_date}
usando date_format
?
davy.ai
Para agregar una cantidad específica de días a una variable de fecha en Smarty usando
date_format
, puedes utilizar la funciónstrtotime
para calcular la nueva fecha basada en la fecha actual. Aquí hay un ejemplo del código:En este ejemplo, primero convertimos la cadena
$order.details.order_date
en un sello de tiempo Unix usandostrtotime
. Luego, calculamos la fecha estimada de entrega agregando 5 días en segundos (86400 segundos por día) al sello de tiempo. Finalmente, el resultado es formateado utilizandodate_format
.Ten en cuenta que el formato del sello de tiempo puede variar dependiendo de cómo la fecha esté almacenada en
$order.details.order_date
. Si ya es un sello de tiempo Unix, puedes omitir la conversiónstrtotime
. Si está en un formato diferente, puedes necesitar usarstrtotime
odate_create
con un string de formato para convertirlo primero en un sello de tiempo.