0

日付を秒単位で時間に変換してから元に戻すと、結果が間違っているのはなぜですか?

$br= "<br>";

$unixtime= 1277267278;
echo 'unix time: ' . $unixtime . $br;

$readabledate= date('Y-m-d H:i:s', $unixtime);
echo 'readable date: ' . $readabledate . $br;

$expirydate= date('Y-m-d H:i:s', strtotime($readabledate . " +6 months + 7 days"));
echo 'expirydate: ' . $expirydate . $br;

$epochtime= convertFromDateToEpochTime($expirydate);   //convert to unixtime

echo 'epochtime: '. $epochtime . $br;

$readexpirydate= convertFromEpochTimeToDate($epochtime,$method = 1);  //convert it back to readable date

echo 'readexpirydate: '. $readexpirydate . $br;  // final result is wrong- 2009-11-03 xx

echo $br.$br.$br.$br.$br;
function convertFromDateToEpochTime($date)
{
        $year=substr($date,0,4);
        $month=substr($date,4,2);
        $day=substr($date,6,2);
        $hour=substr($date,8,2);
        $minute=substr($date,10,2);
        $second=substr($date,12,2);
        $newdate=mktime($hour,$minute,$second,$month,$day,$year);

        return $newdate;
}


function convertFromEpochTimeToDate($epoch,$method = 1)
{
 if ($method == 1)
    $date= date("Y-m-d H:i:s", $epoch);

 else if ($method == 2)
  $date= date("m/d/y H:i:s", $epoch);

 return $date;
}
4

1 に答える 1

0

あなたはこれを必要とします

$unixtime= 1277267278;
echo 'unix time: ' . $unixtime . $br;

$readabledate= date('Y-m-d H:i:s', $unixtime);
echo 'readable date: ' . $readabledate . $br;

$expirydate= date('Y-m-d H:i:s', strtotime($readabledate . " +6 months + 7 days"));
echo 'expirydate: ' . $expirydate . $br;

$epochtime= strtotime($expirydate);   //convert to unixtime

echo 'epochtime: '. $epochtime . $br;

$readexpirydate= date('Y-m-d H:i:s', $epochtime);  //convert it back to readable date

echo 'readexpirydate: '. $readexpirydate . $br;  

結果は次のとおりです。unix時間:1277267278
読み取り可能日付:2010-06-23 09:57:58
有効期限:2010-12-30 09:57:58エポックタイム:
1293683278読み取り有効
期限:2010-12-30 09:57:58

于 2010-12-23T07:06:50.283 に答える