Post Top Ad

Your Ad Spot

martes, 15 de septiembre de 2020

Fechas y horarios sencillos de PHP con Carbon

 


PHP Dates and Times With Carbon se hace increíblemente simple con la API intuitiva proporcionada por esta gran biblioteca. Carbon extiende la clase nativa PHP DateTime que le da acceso a todas las funciones con las que está familiarizado, además de algunas otras excelentes características nuevas. Carbon hace uso de su propio espacio de nombres, acertadamente llamado Carbon. Cuando empiece, asegúrese de importar ese espacio de nombres, por ejemplo, use Carbon / Carbon; para ponerse en marcha rápidamente. Echemos un vistazo a algunas de las diversas cosas que Carbon puede hacer por nosotros mientras revisamos la creación de instancias , captadores, definidores, formato de cadenas, formatos comunes, diferencias, modificadores y más.

  • 1Crear una nueva instancia de Carbon
  • 2Carbono para tontos
  • 3Formateo de fechas y horas con Carbon
  • 4Captadores de carbono
  • 5Setters de carbono
  • 6Zona horaria de carbono
  • 7Manipulación de fecha y hora con carbono
  • 8Comparación de fechas y horas en carbono
  • 9Comprobación de las diferencias de fecha y hora con Carbon
  • 10Modificación de fechas y horas con carbono
  • 11Carbono en el mundo real

Crear una nueva instancia de Carbon

Lo primero que haremos es simplemente crear una nueva instancia de la clase Carbon para que podamos echar un vistazo a lo que es. Haremos esto simplemente usando el newoperador con la clase Carbon y lo asignaremos a una variable simple apropiadamente nombrada $carbon.

Podemos inspeccionar nuestro nuevo objeto ahora.
var dump of carbon instancia

Podemos ver aquí que es un objeto de la clase Carbon \ Carbon. Lo siguiente que vemos es que hay una propiedad pública llamada dateque es una cadena que contiene la fecha y la hora. timezone_typees la siguiente propiedad pública que vemos que es un número entero con un valor de 3, y una propiedad pública llamada timezoneque es una cadena que tiene el valor de UTC. Nos centraremos en esa datepropiedad para empezar.


Uso de carbono a través de métodos estáticos

Un enfoque diferente que podríamos usar es llamar a métodos estáticos directamente desde la clase Carbon sin tener que incluso crear una instancia nueva primero. Un método útil es el método now (). Probémoslo ahora mismo.

Carbon :: ahora ()

método var dump of carbon now

Lo que encontramos al inspeccionar esta instancia con var_dump () es que tenemos el mismo tipo de objeto que cuando adoptamos el enfoque de usar la nueva palabra clave para crear una nueva instancia de la clase Carbon. Se podría decir que este enfoque es un poco más legible, pero realmente no importa cuál elijas.

Carbono :: hoy ()

Carbon :: today () es otro método que puede utilizar y es ligeramente diferente a Cabon :: now (). Puede usar esto cuando no esté tan preocupado en este momento exacto en el tiempo, sino más bien simplemente qué día es. Como tal, este método solo le brinda la representación de cadena de hoy y omite la hora. Podemos ver esto inspeccionando var_dump y notando que el tiempo es todo ceros.

método de descarga de carbono hoy

Carbono :: mañana ()

Carbon :: tomorrow () es un método útil para determinar dinámicamente la fecha de mañana. En nuestro ejemplo anterior, vimos la fecha como 11/11 de 2015. Si este método funciona correctamente, deberíamos encontrar un valor de 11/12 de 2015 en nuestra salida.

método carbono mañana

Excelente. Observe que la fecha se incrementó en uno y vemos el resultado del 11/12 de 2015.

Carbono :: ayer ()

Si podemos devolver fácilmente el valor de mañana, también deberíamos poder obtener el valor de ayer. Por desgracia, esto es bastante fácil con Carbon.

método carbono ayer

Este código está funcionando tal como lo esperaríamos, ya que devuelve el valor de 11/10 de 2015, que es un buen día.

Carbono :: crear ()

Este método se utilizaría para crear una fecha y hora exactas de su elección. Este método depende de que pase algunos argumentos. Podemos ver la fuente de la clase Carbon para ver qué espera.

Al usar Carbon :: create (), normalmente pasaría los parámetros de año, mes, día, hora, minuto, segundo y zona horaria. Lo probaremos ahora.

fiesta como si fuera 1999

Esto, por supuesto, representa la víspera de Año Nuevo, que fue un viernes 31 de diciembre de 1999 con exactamente un segundo para el final hasta "Sí, dicen que se acabó la fiesta de dos mil cero cero, Ups fuera de tiempo, así que esta noche voy a festejar como si fuera 1999, Si." Entiendes la idea.

Carbon :: createFromDate ()

Tal vez necesite crear un objeto basándose solo en la fecha, pero no en la hora. Este método es justo lo que necesita para eso.

carbon createfromdate

Esto nos da la misma fecha, sin embargo, la hora simplemente se completa con la hora actual en lugar de una hora específica que usted proporciona como parámetros para el método.

Carbon :: createFromTime ()

Este método le permite establecer una hora específica del día actual.

crear carbono a partir del tiempo

Observe que la hora se refleja como los valores que pasamos, mientras que la fecha es una instancia de hoy.

Carbon :: createFromTimestamp

Si tiene una marca de tiempo desde la que le gustaría crear una instancia de Carbon, podemos usar este método.

tiempo unix 1970 01 01

Este es el cumpleaños del sistema operativo Unix .

Probemos algo con una marca de tiempo que podría ser un poco más aplicable. http://www.unixtimestamp.com/ nos da la cantidad de segundos que han pasado desde el 1 de enero de 1970. Sigamos adelante y pasemos una marca de tiempo desde allí.

marca de tiempo unix


Carbono para tontos

Ahora que hemos visto varias formas de crear un objeto de tipo Carbon, veamos la versión Creación de una instancia de Carbon para Dummies . Digo esto porque cuando crea una instancia de Carbon, puede pasar una cadena en una forma legible por humanos, y Carbon es lo suficientemente inteligente como para crear lo que está tratando de lograr. Por ejemplo, podemos crear una fecha específica como esta.

Todos estos son interpretados correctamente por Carbon y PHP y proporcionan el resultado como tal.
constructor principal de carbono

También podemos pasar una cadena que representa algo así como hace 3 días o 4 días a partir de ahora. Además de esto, también puede especificar más o menos horas para obtener más detalles. Aquí están algunos ejemplos.

Esto es muy bueno y hemos cubierto la mayoría de las formas en que podría crear una instancia de Carbon manualmente. Ahora podemos echar un vistazo al formato de fechas con Carbon, que es donde Carbon realmente brilla.


Formateo de fechas y horas con Carbon

toDateString ()

El primer método de la clase Carbon que veremos es toDateString (). Toma la fecha en el objeto Carbon y la coloca en una cadena de fecha con un formato agradable.

toTimeString ()

El método toTimeString () formatea la hora en el objeto Carbon en una cadena de tiempo con el formato adecuado.

Lo que sucedió en este ejemplo es que, dado que en realidad no proporcionamos una hora en el constructor, la hora actual se usa en el momento de la ejecución del código. Sin embargo, teníamos una cláusula de resta y estábamos eliminando 10 horas, por lo que eso se refleja en la cadena de tiempo.

toDateTimeString ()

toAtomString ()

Puede formatear la fecha y la hora como una cadena de átomos como tal.

toCookieString ()

Dar formato a la fecha y la hora al estándar de una cookie es fácil con el método toCookieString ().

toDayDateTimeString ()

Así es como funciona el método toDayDateTimeString () y el resultado es muy agradable.

toFormattedDateString ()

El toFormattedDateString () genera su instancia de Carbon así.

toIso8601String ()

Hay varios formatos de fecha y hora basados ​​en estándares. Éste es para ISO 8601.

toRfc822String ()

Hemos incorporado soporte para RFC 822 a través del método toRfc822String ().

toRfc850String ()

Obtenga sus cadenas formateadas RFC 850 de su objeto Carbon con el método toRfc850String ().

toRfc1036String ()

Formatear RFC 1036 fecha y hora es muy sencillo con el método toRfc1036String ().

toRfc1123String ()

Así es como puede establecer el formato en una cadena RFC 1123 .

toRfc2822String ()

¿Necesita una cadena con formato RFC 2822 ? Tiene suerte con el método toRfc2822String ().

toRfc3339String ()

Quizás RFC 3339 es lo que está buscando. El método toRfc3339String () es el que necesita.

toRssString ()

El método toRssString () formatea rápidamente la fecha y hora a algo compatible con una fuente RSS.

toTimeString ()

El método toTimeString () ofrece una forma de generar un formato muy simple como este.

toW3cString ()

Formatee fácilmente al formato de cadena W3C con el método toW3cString ().

Todos estos métodos comienzan con to, como podemos ver aquí. Hay un poco de superposición entre los nombres de los métodos y los formatos que proporcionan, pero lo que hace es permitirle estructurar su código de la manera que tenga el mayor sentido posible para usted. En otras palabras, tienes suficiente azúcar para que sea más fácil razonar durante el desarrollo.

Ahora podría estar pensando en la forma estándar en que formateamos las fechas en PHP cuando usamos cosas como strtotime (), DateTime y date_create () en PHP nativo. Se aplican las mismas reglas para Carbon, y si lo prefiere, simplemente puede usar el método format () así.

¡He aquí diffForHumans ()!

Este es uno de los métodos más interesantes de Carbon Library. Lo que hace es comparar la fecha y hora actuales con las almacenadas en la instancia actual de Carbon. Por ejemplo, la propia instancia de Carbon puede contener una marca de tiempo o algún formato de fecha y hora de hace unos días, o quizás incluso algo en el futuro. El método diffForHumans () crea formatos muy bien formateados y legibles por humanos a partir de esta diferencia de tiempo. Veamos algunos ejemplos.


Captadores de carbono

Ya hemos echado un vistazo a todas las formas en que podemos formatear fechas y horas con Carbon. Ahora, ¿qué sucede si desea acceder, digamos, solo el día, o solo la hora, o solo el minuto que le interesa? ¿Vuelve a formatear la instancia de Carbon y luego recupera los valores como desea? No, no tiene que hacer eso, puede hacer uso de los métodos getter especiales que recuperarán fechas y horas en el formato que desee. Echemos un vistazo al código fuente que hace esto posible, ya que nos iluminará sobre cómo Carbon está funcionando realmente, es mágico.

Funcionalidad Getter