我在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äischeSommerzeit)”转换为DateTime,以便将其保存到postgresql?
答案 0 :(得分:3)
您可以从Date对象获取unix时间戳,如下所示(see Date.prototype.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时间戳,可以使用格式化方法以所需格式打印。请记住事先设置时区
$datumUhrzeit->setTimezone(new DateTimeZone('Europe/Berlin'));
print $datumUhrzeit->format('Y-m-d H:i:s');
因为javascript对时区不起作用,所以我建议你尽可能使用unix时间戳。通过这种方式,您可以减少时区问题。
答案 1 :(得分:0)
您可以执行类似
的操作$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;
答案 2 :(得分:0)
您可以使用此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']));
答案 3 :(得分:-1)
尝试这个
function myFunction() {
var content = document.getElementById("datum").value+","+document.getElementById("uhrzeit").value;
console.log(content);
}