Het uitpakken alleen de datum van datum / tijd-veld (mysql) en toewijzen van het php-variabele

Ik ben niet in staat om alleen toewijzen datum naar een php variabele van datetime veld van een MySQL tabel. Ik gebruik PHP 4, ik weet hoe dit te doen in PHP 5.

Kan iemand helpen wat ontbreekt in de onderstaande php code.

$dc = mysql_query("SELECT * FROM INVHDR WHERE Invdate BETWEEN '2011-04-01' AND '2012-03-31'");
while ($dc2 = mysql_fetch_assoc($dc)) {
    $invno      = $dc2['Invno']; //Here Invno is a datetime field type
    $invdat3    = $dc2['Invdate'];
    $date_array = explode("-", $invdat3);
    $invdat     = sprintf('%02d/%02d/%4d', $date_array[2], $date_array[1], $date_array[0]);
}
  • msql_* is afgeschaft hoop dat u weet dat het gebruik bob indtead
  • hij is met behulp van PHP 4. BOB was niet aanwezig totdat PHP >= 5.1
  • voor de veiliger kant vraag ik niet gebruiken in de toekomst.
  • Heel eenvoudig. Alleen zie dit :- php.net/manual/en/function.date.php

 

3 Replies
  1. 32

    Als je gewoon wilt om display het datum gedeelte, kunt u het DateTime klasse:

    echo echo DateTime::createFromFormat("Y-m-d H:i:s", "2012-12-24 12:13:14")->format("d/m/Y");
    //24/12/2012
    • Dit werkt, maar dit is niet het antwoord. Hij moet gewoon met de DATE() functie in de SELECT deel van zijn zoekopdracht.
    • Ik heb redenen waarom hij zou moeten worden weergave/formatteren van data in PHP.
  2. 3

    Doe het direct in de MySQL:

    select DATE_FORMAT('2012-12-24 12:13:14', '%Y/%m/%d')

    Dus de query er als volgt uit:

    SELECT DATE_FORMAT(Invdate, '%Y/%m/%d') FROM INVHDR WHERE Invdate BETWEEN '$startdat' AND '$enddat'

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *