我目前的代码:
<?php
$timestamp = DateTime::createFromFormat("d.m.Y H:i", $_POST["datetime"]);
echo $timestamp; // works!
?>
现在我有一个包含两个字段的表单:日期和时间,分开。
<?php
$timestamp = DateTime::createFromFormat("d.m.Y", $_POST["date"]);
echo $timestamp; // works!
$timestamp = DateTime::createFromFormat("H:i", $_POST["time"]);
echo $timestamp; // doesn't work (error below)!
// Edit:
/* Fatal error: Call to a member function getTimestamp() on a non-object in */
?>
我想避免在mktime()中使用explode()。这感觉很脏,我认为可能有另一种干净的方式。
您如何从格式创建时间戳?
提前致谢!
答案 0 :(得分:3)
你做不到。时间戳需要一个日期才能计算,并且没有可用的日期。
答案 1 :(得分:2)
如果您想从$_POST["date"]
和$_POST["time"]
获取日期和时间,请使用以下
DateTime::createFromFormat("d.m.Y H:i", $_POST["date"]." ".$_POST["time"]);
如果你想知道特定时间午夜的秒数,你可以使用它,
DateTime::createFromFormat("Ymd H:i", date("Ymd")." ".$_POST["time"]);
答案 2 :(得分:1)
使用日期时间的settime方法
$timestamp = \DateTime::createFromFormat("d.m.Y", '10.10.2012');
$timestamp->setTime(17,12);
var_dump($timestamp);
给出
object(DateTime)#1142 (3) { ["date"]=> string(19) "2012-10-10 17:12:00" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" }