2010-12-01 16 views
0

Salut je suis d'insérer une entrée de date dans un champ qui a un type Timestamp et CURRENT_TIMESTAMP par défaut de champ ... ma valeur d'insertion ressembleront cetteéquivalent de la fonction mysql CURRENT_DATE() en PHP

'.($data[16] == '' ? CURRENT_DATE() : $data[16]).' 

comment Est-ce que je formater le CURRENT_DATE() pour être 30-Nov-10 pour correspondre à ce que le format $ data [16] serait s'il n'est pas présent. Devrais-je également changer le type de champ à date et non timestamp?

+0

php n'a pas une telle fonction. –

+3

Qui a élevé cette question boiteuse? –

Répondre

3

date($format,strtotime(CURRENT_DATE)) fonctionne pour moi.

0

Eh bien, sans plus d'informations tout ce que je peux vous dire est

vous devriez regarder dans la fonction date et il est deuxième arg où vous mettez un horodatage que vous pouvez créer avec mktime alt. strtotime

0

Cette question n'a pas de sens .. Je suppose que vous voulez afficher la date actuelle .. dans ce cas, vous pouvez modifier le format qui suit:

$today = date("M/d/y"); 

aussi, le temps () affichera la date à la deuxième dans un timestamp unix

$today = time(); 
1

CURRENT_DATE() est une fonction MySQL. Vous pouvez l'utiliser comme une chaîne littérale:

$sql_date = ($date == '') ? 
    "DATE_FORMAT(CURRENT_DATE(),'%d-%b-%y')" : "'$date'"; 

mysql_query("UPDATE foo SET date=$sql_date"); 

Cela suppose que $date est sans danger pour l'insertion SQL.

Ou vous pouvez simplement utiliser PHP:

if (!$date) $date = date('%d-%M-%y'); 
mysql_query("UPDATE foo SET date='$date'"); 

Personnellement, je généralement utiliser la solution PHP car il rend plus facile d'utiliser la même requête avec les mêmes espaces réservés aux paramètres de sécurité (non utilisé dans cet exemple) indépendamment de la façon dont vous construisez la date.

dois-je modifier également le type de champ à ce jour et non timestamp

Si le temps est hors de propos, alors il devrait être un champ de date. Cependant, s'il s'agit d'un champ date/horodatage (et non un champ de texte), vous devez l'insérer au format AAAA-MM-JJ, et le code ci-dessus est inutile. C'est-à-dire, si le champ est du texte, alors le code ci-dessus pourrait être utile. Cependant, si vous stockez simplement une date dans un seul champ, vous devez utiliser un champ de date. Dans ce cas, le format que vous insérez doit toujours être en AAAA-MM-JJ. Lorsque vous récupérer les données, vous pouvez le formater comme vous le souhaitez pour l'affichage.