06. april 2008 - 01:20
Der er
3 kommentarer og
1 løsning
Form dato til mysql timestamp
Hejsa.
Nogle der lige kan gennemskue hvorfor dette ikke virker
/**
* Adds a done task to the db.
*/
function addRegistration($startTime, $endTime, $userName, $taskTypeId, $solutionDesc) {
$startTime = date( 'Y.m.d H:i:s', $startTime );
$startTIme = strtotime( $startTime );
$endTime = date( 'Y.m.d H:i:s', $endTime );
$endTIme = strtotime( $endTime );
$q = "INSERT INTO TASKS (starttime, tasktypeid, username, solutiondesc) VALUES (UNIX_TIMESTAMP($startTime), $taskTypeId, '$userName', '$solutionDesc')";
return mysql_query($q, $this->connection);
}
Dato sendes som streng ind i formatet 06.3.2008 01:20:14
06. april 2008 - 14:02
#4
Jeg har ændret det til følgende.
function addRegistration($startTime, $endTime, $userName, $taskTypeId, $solutionDesc) {
$dateDiffSecs = datediff("s", formatDate($startTime), formatDate($endTime), true);
$startTime = date('Y.m.d H:i:s', $startTime);
$endTime = date('Y.m.d H:i:s', $endTime);
$q = "INSERT INTO TASKS (starttime, endtime, timespent, tasktypeid, username, solutiondesc) VALUES ('$startTime', '$endTime', 1, $taskTypeId, '$userName', '$solutionDesc')";
return mysql_query($q, $this->connection);
}
og før jeg kalder metoden gør jeg dette ved datoerne.
function formatDate($val)
{
list($date, $time) = explode(" ", $val);
list($day, $month, $year) = explode(".", $date);
list($hour, $minute, $second) = explode (":", $time);
return mktime((int)$hour, (int)$minute, (int)$second, (int)$month, (int)$day, (int)$year);
}
Datoerne kommer fra inputfields fra brugeren.