¿Hay alguna función timetostr
en php que genere today/tomorrow/next sunday/etc.
desde una fecha y hora determinada? De modo que timetostr(strtotime(x))=x
php strtotime reverse
Respuesta
Esto podría ser útil para las personas que vienen aquí.
/**
* Format a timestamp to display its age (5 days ago, in 3 days, etc.).
*
* @param int $timestamp
* @param int $now
* @return string
*/
function timetostr($timestamp, $now = null) {
$age = ($now ?: time()) - $timestamp;
$future = ($age < 0);
$age = abs($age);
$age = (int)($age/60); // minutes ago
if ($age == 0) return $future ? "momentarily" : "just now";
$scales = [
["minute", "minutes", 60],
["hour", "hours", 24],
["day", "days", 7],
["week", "weeks", 4.348214286], // average with leap year every 4 years
["month", "months", 12],
["year", "years", 10],
["decade", "decades", 10],
["century", "centuries", 1000],
["millenium", "millenia", PHP_INT_MAX]
];
foreach ($scales as list($singular, $plural, $factor)) {
if ($age == 0)
return $future
? "in less than 1 $singular"
: "less than 1 $singular ago";
if ($age == 1)
return $future
? "in 1 $singular"
: "1 $singular ago";
if ($age < $factor)
return $future
? "in $age $plural"
: "$age $plural ago";
$age = (int)($age/$factor);
}
}
Me aparece un ERROR: 'lista' inesperada (T_LIST). ¿Qué estoy haciendo mal? – hozza
¿Algo relacionado con las versiones de PHP? Lo hice funcionar declarando la lista 'list ($ singular, $ plural, $ factor) = $ scale;' dentro de foreach y reemplazando la lista en los carritos de visita foreach con '$ list' – hozza
Eso es correcto. PHP 5.5 agregó "Desempaquetar matrices anidadas con list()" (http://php.net/manual/en/control-structures.foreach.php) –
No puede haber una función inversa strtotime
porque esto no es una biyección. La cadena de origen de la que obtiene una marca de tiempo UNIX cuando usa strtotime
se puede formatear de muchas formas diferentes. Entonces, si decide revertir la función, ¿cómo puede saber qué formato de cadena usar? Bien podría ser 2010-08-05 o 10 de septiembre de 2000, etc. Esta es exactamente la razón por la cual no hay una función inversa, pero como bien dijo Andypandy, debe usar date()
que le permite definir realmente el formato de cadena que desea finalizar arriba con. Sé que esta pregunta es antigua, pero pensé que merecía esta respuesta para que otros usuarios entiendan por qué no hay tal función en PHP.
aunque técnicamente es "correcto", esto no responde a la pregunta del OP, sino que promueve un estereotipo negativo del programador conocedor que sabe mejor que el persona que hace la pregunta. Otro enfoque sería decir algo como esto -> http://stackoverflow.com/a/3040437/830899 – unsynchronized
fecha ("Ymd", time()) puede hacer el trabajo. – Qinjie
- 1. PHP Strtotime -1meses -2meses
- 2. PHP - strtotime - Añadir horas
- 3. PHP fecha strtotime no trabajar
- 4. php parse_url reverse - url analizado
- 5. equivalente de Javascript del strtotime de php()?
- 6. force php strtotime para usar UTC
- 7. PHP: strtotime() devuelve siempre 01/01/1970
- 8. PHP strtotime() ¿funciona mal por 1 hora?
- 9. Función de PHP strtotime() que acepta un formato?
- 10. strtotime ¿Con diferentes idiomas?
- 11. fecha strtotime resultado raro
- 12. python - strtotime equivalent?
- 13. convertido strtotime al formato de fecha y hora en php
- 14. PHP strtotime() parece que está esperando un formato Euro
- 15. PHP strtotime() diferentes resultados del lunes de esta semana
- 16. PHP: strtotime devuelve falso para una fecha futura?
- 17. Reverse factorial
- 18. reverse mysql_real_escape_string
- 19. Reverse NSMutableArray
- 20. reverse htmlspecialchars
- 21. SQL reverse LIKE
- 22. Lighttpd Reverse Proxy Settings
- 23. Reverse Array Order
- 24. .NET Reverse Semaphore?
- 25. Python Reverse Generator
- 26. Reverse Ajax con JSF?
- 27. Django reverse() para JavaScript
- 28. Usar strtotime para fechas anteriores a 1970
- 29. Reverse Y-Axis en PyPlot
- 30. Cometa, Empujar Ajax, Reverse Ajax
date(). Ver http://php.net/manual/en/function.date.php –
@Andypandy: Sé acerca de 'date()'. Quise preguntar, ¿hay una función directa que haga el reverso de 'strtotime'? – prongs
si no es la fecha, no sé ... ¿podrías darnos un poco más de contexto? algo como esto ($ timestring = date ('l', $ timestamp) no funciona? –