2010-11-17 6 views
0

J'ai deux entrées heure et date. Je veux convertir ces champs en un en utilisant php et les insérer dans un champ datetime dans mysql. Je pense que je dois utiliser un STR_TO_DATE. Mais je ne sais pas comment le faire. Mercimysql convertir l'entrée de texte en champ datetime

Format Heure = 12:00
Date = 2010-11-17

Répondre

0
$Time = "12:00 PM"; 
$Date = "2010-11-17"; 
$DateTime = $Date . " " . $Time; 

$timestamp = date('Y-m-d H:i:s',strtotime($DateTime)); 
+0

Cela fonctionne merci. – Eric

0

Ce code PHP pour obtenir une date de début et fin:

$datef = (date("Y-m-d H-i-s",mktime($_POST['hour'], 0, 0, $_POST['month'], $_POST['day'], $_POST['year']))); 
$datel = (date("Y-m-d H-i-s",mktime($_POST['hour1'], 0, 0, $_POST['month1'], $_POST['day1'], $_POST['year1']))); 

Cela a été posté d'une charge des listes déroulantes html!

Je sais que cela ne répond pas exactement à votre question, mais cela vous donnera une bonne base!

0

Vous devez utiliser un horodatage, c'est un standard beaucoup plus facile à manipuler avec autant de granularité que nécessaire pour votre configuration actuelle.

En ce qui concerne « Conversion » de la table, qui est à peu près impossible, vous devez faire une nouvelle table, déplacez les choses plus, laissez tomber l'ancien et renommer le nouveau ...

+0

L'horodatage ne fonctionne pas Ce n'est pas un formulaire d'entrée par son basé sur la prémisse des champs d'entrée et les personnes qui les remplissent Timestamp génère automatiquement une heure et une date, mais l'heure et la date de l'en essayer est mis dans la base de données n'est pas ce que je cherche. Aussi, je ne cherche pas à convertir l'ensemble de la table en convertissant les champs d'entrée en utilisant php pour ensuite mettre les données dans une base de données mysql. – Eric

+0

Timestamp est un format, vous pouvez prendre l'entrée de l'utilisateur et le mettre dans un horodatage et sans les problèmes que vous obtiendrez sans elle ... La façon dont vous le faites est comme stocker les noms et prénoms d'un utilisateur dans le même champ parce que vous ne peut pas être dérangé en regardant les avantages de les diviser. –

0

La fonction STR_TO_DATE est en effet une bonne option.

Vous pouvez essayer quelque chose comme ceci:

STR_TO_DATE('2010-11-17 12:00 PM', '%Y-%m-%d %h:%i %p') 
+0

puisque j'ai des variables d'entrée comment les utiliser dans STR_TO_DATE? – Eric

+1

Si vous utilisez php, comme ceci: $ query = "INSERT INTO' table' ('date') VALEURS (STR_TO_DATE ('". $ Date. "', '% Y-% m-% d% h: % i% p '); " –

1

Puisque vous envisagez d'utiliser PHP, vous pouvez directement mettre dans un format qui MYSQL acceptera,
tels que

$the_date = date('Y-m-d H:i:s', strtotime($date.' '.$time); 
$sql = "INSERT INTO YOUR_TABLE SET COL_FOR_DATE_TIME='{$the_date}'";