1

PHP を使用して、以下の形式の日付を UNIX タイムスタンプに変換する方法を考え出そうとしています。誰かが私がこれを達成するのを手伝ってくれるかどうか疑問に思っていました.

これは私が試したものですが、うまくいきませんでした:

   $expiration_date = '11/22/12';

   $timestamp = strtotime(date("m/d/y", $expiration_date));     
4

2 に答える 2

6

その部分は必要ありませんdate()

これを行うだけです:

$expires = '11/22/12';
$unix = strtotime($expires);

http://php.net/manual/en/function.strtotime.php

あなたの例の問題は、date()関数に文字列を渡していることです。
このdate()関数には、たとえばフォーマット文字列'm/d/y'と、int 値としての時間が必要です。
文字列を渡しているため、機能しません。

date(): http://php.net/manual/en/function.date.php

于 2012-11-19T22:43:51.217 に答える
2

これらの操作には DateTime を使用してください。

$expiration_date = '11/22/12';
list($m, $d, $y) = explode('/', $expiration_date);
$unix = (checkdate((int)$m, (int)$d, (int)$y + 2000)) ? DateTime::createFromFormat('m/d/y', $expiration_date, new DateTimeZone('Europe/Berlin'))->getTimestamp() : false;
echo $unix;

これにより、整数が得られます。

于 2012-11-19T23:08:49.193 に答える