我在HTML:中有两个字段
<input id="datum" type="date">
<input id="uhrzeit" type="time">
JavaScript:
var datumUhrzeit = new Date($("#datum").val()+","+$("#uhrzeit").val());
console.log(datumuhrzeit);
"Tue Aug 18 2015 16:45:00 GMT+0200 (Mitteleuropäische Sommerzeit)"
如何将PHP中的"Tue Aug 18 2015 16:45:00 GMT+0200(Mitteleuropäische Sommerzeit("转换为DateTime,以便将其保存到postgresql?
您可以从Date对象获取unix时间戳,如下所示(请参阅Date.protype.getTime(
var timestamp = '@' + Math.round(datumUhrzeit.getTime()/1000);
然后在服务器上发送时,只需创建新的日期时间对象
$datumUhrzeit = new DateTime($timestamp);
如果你不能使用javascript创建时间戳,并且直接从表单中获取数据,你可以这样做,记得设置时区:
$datum = $_GET['datum'];
$uhrzeit = $_GET['uhrzeit'];
$datumUhrzeit = DateTime::createFromFormat('Y-m-d H:i:s', $datum . ' ' . $uhrzeit, new DateTimeZone('Europe/Berlin'));
现在,当你已经将日期保存到数据库并检索到它时,你可以将其发送回
print $datumUhrzeit->format('U'); // This will print the time as unix timestamp
之后,您将只使用时间戳创建javascript日期对象
var datumUhrzeit = new Date(timestamp * 1000); // timestamp from above
如果您出于某种原因不想使用unix时间戳,您可以使用format方法以所需的格式打印它。记住提前设置时区
$datumUhrzeit->setTimezone(new DateTimeZone('Europe/Berlin'));
print $datumUhrzeit->format('Y-m-d H:i:s');
因为javascript不能很好地与时区配合使用,所以我建议您尽可能使用unix时间戳。这样你就可以减少时区的问题。
您可以使用此javascript函数将dateObject
或date string
转换为您想要的格式:
/**
* Formats a dateObject or date string to Y-m-d date
* Example: Converts dateObject or date string Sat Aug 19 2017 00:00:00 GMT+0530 (India Standard Time) TO 2017-08-19
*/
function format_date( date )
{
if (typeof date == "string")
{
date = new Date(date);
}
var year = date.getFullYear();
var month = (1 + date.getMonth()).toString();
month = month.length > 1 ? month : '0' + month;
var day = date.getDate().toString();
day = day.length > 1 ? day : '0' + day;
return year+'-'+month+'-'+day;
}
var dateString = 'Tue Aug 18 2015 16:45:00 GMT+0200 (Mitteleuropäische Sommerzeit)';
var formattedDate = format_date(dateString);//returned formatted date is 2015-08-18
然后,您可以将这个格式化的日期传递给您的PHP代码,在那里您可以使用函数strtotime
将这个日期转换为您想要的格式。例如:
$myFormattedDate = date('d-m-Y', strtotime($_REQUEST['formattedDate']));
您可以执行类似的操作
$datumUhrzeit = 'Tue Aug 18 2015 16:45:00 GMT+0200 (Mitteleuropäische Sommerzeit)';
$datumUhrzeit = substr($datumUhrzeit, 0, strpos($datumUhrzeit, '('));
$resultDate = date('Y-m-d h:i:s', strtotime($datumUhrzeit));
echo $resultDate;
试试这个
function myFunction() {
var content = document.getElementById("datum").value+","+document.getElementById("uhrzeit").value;
console.log(content);
}