2

私の現在のコード:

<?php
    $timestamp = DateTime::createFromFormat("d.m.Y H:i", $_POST["datetime"]);
    echo $timestamp; // works!
?>

これで、日付と時刻の2つのフィールドが分​​離されたフォームができました。

<?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()を使用することは避けたいと思います。それは汚く感じます、そして私は別の、きれいな方法があるかもしれないと思います。

フォーマットからタイムスタンプをどのように作成しますか?

前もって感謝します!

4

3 に答える 3

3

できません。タイムスタンプを計算するには日付が必要であり、使用できる日付はありません。

于 2012-12-19T18:20:25.137 に答える
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"]);
于 2012-12-19T18:20:45.640 に答える
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" } 
于 2012-12-19T18:27:01.623 に答える