una remove from fecha dates current convertir convert php date laravel-5.1 php-carbon

php - remove - Convertir cadena a carbono



remove html tags php (3)

Estoy usando Laravel 5.1

Hace unos días utilicé protected $dates = [''license_expire''] en mi modelo para convertir la fecha de la cadena en instancias de Carbon. En HTML, el valor predeterminado en la forma de creación para la fecha era Carbon/Carbon::now()->format(''Ym-d'')

Para mostrar una alerta en la página de inicio utilicé <p>Licence Expired: <b>{{ $employee->license_expire < Carbon/Carbon::now()?''License has expired'':$employee->license_expire->diffForHumans() }}</b></p>

Hasta entonces el método diffForHumans () funciona bien.

Pero en ese caso, el valor predeterminado del formulario de edición también era la fecha de hoy sin importar lo que estaba en la base de datos (estoy usando un formulario parcial). Para resolverlo, cambio el valor predeterminado en HTML era NÚll. Y agregue otro método en mi modelo para mostrar la fecha actual en crear formulario.

public function getLicenseExpireAttribute($date) { return Carbon::parse($date)->format(''Y-m-d''); }

Después de eso, cuando voy a la página de inicio, tengo una FatalErrorException que dice Call to a member function diffForHumans() on string

Cuando dd($employee->license_expire) la fecha con dd($employee->license_expire) se convierte en STRING nuevamente.

¿Alguien puede decirme cómo puedo convertir la cadena a Carbon en esta situación?

o

Crear la fecha predeterminada de mi formulario de creación como la fecha de hoy, la fecha del formulario de edición de la base de datos y puedo usar diffForHumans () para mostrar alertas en la página de inicio.


¿Por qué no intentar usar lo siguiente?

$dateTimeString = $aDateString." ".$aTimeString; $dueDateTime = Carbon::createFromFormat(''Y-m-d H:i:s'', $dateTimeString, ''Europe/London'');


Estabas casi allí.

Quitar protected $dates = [''license_expire'']

y luego cambie su LicenseExpire a:

public function getLicenseExpireAttribute($date) { return Carbon::parse($date); }

De esta manera devolverá una instancia de Carbon sin importar qué. Por lo tanto, para su formulario, simplemente tendría $employee->license_expire->format(''Ym-d'') (o el formato que sea necesario) y diffForHumans() debería funcionar en su página de inicio.

¡Espero que esto ayude!


Prueba esto

$date = Carbon::parse(date_format($youttimestring,''d/m/Y H:i:s'')); echo $date;