4

date_parse_from_format()方法について質問があります。

$parsed = date_parse_from_format("Y d M H:i T", '2012 28 Nov 21:00 CET');

指定された日付に関する詳細情報を含む連想配列を返します。

これは、日付情報を含む配列を返します。しかし、それをUNIXタイムスタンプに変換する方法はありますか?

4

4 に答える 4

7

ヨハン、

シナリオにmktimeを実装する方法の正確な例を次に示します。

$parsed = date_parse_from_format("Y d M H:i T", '2012 28 Nov 21:00 CET');
$new = mktime(
        $parsed['hour'], 
        $parsed['minute'], 
        $parsed['second'], 
        $parsed['month'], 
        $parsed['day'], 
        $parsed['year']
);
echo $new; //returns: 1354136400

後で参照できるように、var_dump()またはprint_r()配列で、ネストされた値にアクセスする方法を確認できます。

$parsedのvar_dump

array (size=16)
  'year' => int 2012
  'month' => int 11
  'day' => int 28
  'hour' => int 21
  'minute' => int 0
  'second' => int 0
  'fraction' => boolean false
  'warning_count' => int 0
  'warnings' => 
    array (size=0)
      empty
  'error_count' => int 0
  'errors' => 
    array (size=0)
      empty
  'is_localtime' => boolean true
  'zone_type' => int 2
  'zone' => int -60
  'is_dst' => boolean false
  'tz_abbr' => string 'CET' (length=3)
于 2012-11-29T12:45:52.647 に答える
4

日付にmktime()を使用してみると、UNIX タイムスタンプを取得できます。

例えば:

echo mktime(12, 20, 0, 10, 4, 2012 );

そのような出力が得られます1349353200

AM/PM が必要な場合は、PM の場合は時間に 12 を追加します。

例えば:

mktime($isAM ? $hrs : ($hrs + 12), $mins, $secs, $m, $d, $y);

また、strtotime() も使用できます。

strtotime() - 英語のテキストによる日時の説明を Unix タイムスタンプに解析する

echo strtotime("2012-11-03 11:24:00PM");

そのような出力が得られます1351985040

于 2012-11-29T12:39:34.170 に答える
0

mktime() はあなたのニーズに完全に合うはずです :) http://php.net/manual/en/function.mktime.phpをチェックして、どのように使用できるかを確認してください!

于 2012-11-29T12:38:23.620 に答える