Sui*_*sse 5 javascript php datetime date
我在HTML中有2个字段:
<input id="datum" type="date">
<input id="uhrzeit" type="time">
Run Code Online (Sandbox Code Playgroud)
JavaScript:
var datumUhrzeit = new Date($("#datum").val()+","+$("#uhrzeit").val());
console.log(datumuhrzeit);
"Tue Aug 18 2015 16:45:00 GMT+0200 (Mitteleuropäische Sommerzeit)"
Run Code Online (Sandbox Code Playgroud)
如何将PHP中的“ Tue Aug 18 2015 16:45:00 GMT + 0200(MitteleuropäischeSommerzeit)”转换为DateTime,以便将其保存到postgresql?
您可以按如下方式从 Date 对象获取 unix 时间戳(请参阅 Date.prototype.getTime)
var timestamp = '@' + Math.round(datumUhrzeit.getTime()/1000);
Run Code Online (Sandbox Code Playgroud)
然后在服务器上发送时只需创建新的日期时间对象
$datumUhrzeit = new DateTime($timestamp);
Run Code Online (Sandbox Code Playgroud)
如果您不能使用 javascript 创建时间戳并且直接从表单获取数据,您可以执行以下操作,请记住设置时区:
$datum = $_GET['datum'];
$uhrzeit = $_GET['uhrzeit'];
$datumUhrzeit = DateTime::createFromFormat('Y-m-d H:i:s', $datum . ' ' . $uhrzeit, new DateTimeZone('Europe/Berlin'));
Run Code Online (Sandbox Code Playgroud)
现在,当您已将日期保存到数据库并检索它时,您可以将其发回
print $datumUhrzeit->format('U'); // This will print the time as unix timestamp
Run Code Online (Sandbox Code Playgroud)
之后,您将仅使用时间戳创建您的 javascript 日期对象
var datumUhrzeit = new Date(timestamp * 1000); // timestamp from above
Run Code Online (Sandbox Code Playgroud)
如果您出于某种原因不想使用 unix 时间戳,您可以使用 format 方法以所需格式打印它。记得事先设置好时区
$datumUhrzeit->setTimezone(new DateTimeZone('Europe/Berlin'));
print $datumUhrzeit->format('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)
因为 javascript 不适用于时区,所以我建议您尽可能使用 unix 时间戳。这样你的时区问题就少了。
| 归档时间: |
|
| 查看次数: |
11708 次 |
| 最近记录: |