Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

209
Views
¿Cómo obtener solo la fecha de un objeto DateTime?

Tengo una variable de tipo DateTime() y quiero obtener solo la fecha para compararla con otra variable de fecha. Así es como traté de hacer eso, pero obtengo datos adicionales que no necesito:

 date_default_timezone_set('Africa/Tunis'); $date= new \DateTime('today'); $date->format('d/m/Y');

var_dump($date) devuelve: object(DateTime)#617 (3) { ["date"]=> string(19) "2017-04-09 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(12) "Africa/Tunis" } Así que quiero obtener algo como esto: 04/09/2017

ACTUALIZAR: Este es mi código de acción (tengo un formulario en twig que contiene una entrada de tipo de fecha):

 public function addArtAction(Request $request) { $article=new article(); $em=$this->getDoctrine()->getManager(); $title=$request->request->get('titre'); $content=$request->files->get('contenu'); $dtePub=$request->request->get('date'); date_default_timezone_set('Africa/Tunis'); $datee= new \DateTime('today'); $date=$datee->format('d/m/Y'); if($dtePub==$date) { $article->setTitre($title); $article->setCorps($content); $article->setEtat(true); $article->setDtePub($date); $em->persist($article); $em->flush(); $this->get('session')->getFlashBag()->add('success','Votre article a été archivé!'); } elseif($dtePub>$date) { $article->setTitre($title); $article->setCorps($content); $article->setEtat(false); $article->setDteArch($date); $article->setDtePub($dtePub); $em->persist($article); $em->flush(); $this->get('session')->getFlashBag()->add('success','Votre article a été publié avec succès!'); } elseif($dtePub<$date) { $this->get('session')->getFlashBag()->add('failure','Vous devez choisir une future date!'); } var_dump($date); }
about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Lo estabas haciendo (casi bien). Para referencia aquí, copie y pegue su código:

 date_default_timezone_set('Africa/Tunis'); $date= new \DateTime('today'); $date->format('d/m/Y');

La última línea devuelve la cadena deseada. Si desea generar eso, simplemente puede echo :

 echo $date->format('d/m/Y');

Básicamente, su malentendido fue que el método de format no modifica el objeto $date , sino que solo devuelve la cadena deseada. Si observa la documentación del método de format , encontrará:

Devuelve la fecha formateada de acuerdo con el formato dado

Dice "retorna" con lo que significa devuelto al contexto de la llamada: la expresión de la llamada 'se sustituye' por el valor devuelto. Si lo generara en la función, entonces el manual habría dicho algo como "imprime" o "produce" o "volca". Puede leer más sobre lo que significa 'devolver un valor' en esta parte del manual . El primer ejemplo muestra el equivalente exacto de lo que intentó hacer:

Ejemplo #1 Uso de return

 <?php function square($num) { return $num * $num; } echo square(4); // outputs '16'. ?>

Por último, con respecto al uso de var_dump : tenga en cuenta que esto está destinado a fines de depuración y normalmente no para mostrar la salida al usuario. var_dump normalmente simplemente volcará "Todas las propiedades públicas, privadas y protegidas de los objetos" del objeto dado. Debe consultar las páginas del manual var_dump , contiene muchos ejemplos.

about 4 years ago · Santiago Trujillo Report

0

Formato de uso:

 $date->format('d/m/Y');

o

 $date->format('m/d/Y');

(No sé sus preferencias locales)

about 4 years ago · Santiago Trujillo Report

0

Si necesita comparar con otra marca de fecha y hora, simplemente conviértala de esta manera:

 <?php $literal = "1 week ago"; $date = new DateTime($literal); $date->setTime(0,0); $timestamp = $date->getTimestamp(); ?>
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!