phpのフォームを使用して日付をキャプチャし、unixtimeに変換してから、mysqlに挿入しています。問題は、2012年1月1日を挿入しようとすると、挿入されるのは2011年12月31日です。これは単純な問題であるに違いありませんが、助けを借りることができます。
これが私のフォームコードです:
<select name="mo">
<?php
$arrMo = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
foreach ($arrMo as $key => $value) {
$option_val = intval($key) + 1;
echo "<option value='" . $option_val . "'>" . $value . "</option>";
}
?>
</select> /
<select name="day">
<?php
for ($b = 1; $b < 32; $b++) {
echo "<option value='" . $b . "'>" . $b . "</option>\n";
}
?>
</select> /
<select name="year">
<?php $thisyear = date("Y");
$thisyear = intval($thisyear);
for ($c = 0; $c < 6; $c++) {
$newval = $thisyear - intval($c);
echo "<option value='" . $newval . "'>" . $newval . "</option>\n";
}
?>
</select>
それから私はそれをphpで変更します:
$timestamp = $_POST['year'] . "-" . $_POST['mo'] . "-" . $_POST['day'];
$timestamp = strtotime("Y-m-d H:i:s", $timestamp);//turn it into Unix time
$mysqldatetime = date("Y-m-d H:i:s", $timestamp);
次に、それをデータベースに挿入しようとします。
$q_location = "Insert into markers(MarkerID, lat, lng, street, neighborhood, date) values(" . $nextLocation . ", '" . $_POST['latitude'] . "', '" . $_POST['longitude'] . "', '" . addslashes($_POST['address_public']) . "', '" . addslashes($_POST['neighborhood']) . "', FROM_UNIXTIME(" . $mysqldatetime . "))";
私が間違っていることを何か考えてください。