0

この関数はphp-manualの「日付」で見つけました。

<?php 
// Converts a unix timestamp to iCal format (UTC) - if no timezone is 
// specified then it presumes the uStamp is already in UTC format. 
// tzone must be in decimal such as 1hr 45mins would be 1.75, behind 
// times should be represented as negative decimals 10hours behind 
// would be -10 

    function unixToiCal($uStamp = 0, $tzone = 0.0) { 

        $uStampUTC = $uStamp + ($tzone * 3600);        
        $stamp  = date("Ymd\THis\Z", $uStampUTC); 

        return $stamp;        

    } 
?>

$event_time[0]このような時間形式を保持するような変数があり、14:00これは午後 2 時になります。unixToiCal()このタイムフォーマットを10進数に変換して上記の関数に渡すにはどうすればよいですか?

ご返信ありがとうございます。

更新: うーん、完全に混乱しているようです。物事を片付けてくれてありがとう。関数の 2 番目のパラメーターの目的が実際にはわかりませんでした。私はオーストリア出身なので、UTC オフセットは+2数時間であるはずです。

メソッドに関してもう1つ質問がありstrtotime()ます。

私は 2 つの変数を持っています... <code>$time と$date... これに関する問題は、$date既にタイムスタンプのようなもの1347667200$timeあり、"文字列" (推測)11:00または14:00.

これら 2 つの値を、正確な日付と時刻を表すタイムスタンプと組み合わせるにはどうすればよいですか?

4

3 に答える 3

1

私の投稿がさらに役に立ったことを確認できてうれしいです!

使用している関数にはUnix 時間が必要です:

Unix 時間 (POSIX 時間) は、1970 年 1 月 1 日の協定世界時 (UTC) の午前 0 時から経過した秒数 (閏秒はカウントしない) として定義される、時間のインスタンスを記述するためのシステムです。

したがって、時間値だけではこれ以上役に立ちません。日付コンポーネントも必要です。そうしないと、UNIX 時間を計算できません。

PHP で何かを UNIX 時間に変換する方法の例を次に示します。

$date_to_unixtime = strtotime('3rd September 2012 18:33:34 PM (UTC)'); 

アップデート:

次のように、PHP で UNIX 時間に時間値を追加できます。

$your_new_timestamp = $your_current_timestamp 
    + ($hours * 3600) 
    + ($minutes * 60)
    + $seconds;
于 2012-09-03T16:33:38.047 に答える
0

あなたは少し混乱しているようです。あなたは何をしようとしているのですか?

この関数unixToiCalは UNIX タイムスタンプを想定しています。これは、1970 年 1 月 1 日午前 0 時 GMT からの非うるう秒数です。そのようなことを取得する方法はいくつかありますが、「14:00」のような時刻を 1 に「変換」することはできません。これは、午後 2 時が異なる日の異なるタイムスタンプに対応するためです。これは絶対的なものであり、真夜中を基準にしたものではありません。

コメントに記載されている 10 進数値は、タイム ゾーン オフセット用です。とにかく、ほとんどの場合、それは整数の時間になりますが、UTC からの時間のオフセットが整数でない場所の 1 つを扱っている場合は、時間 + ではなく時間に変換する必要があります。分。

于 2012-09-03T16:32:24.227 に答える
0

を使用strtotimeして、日付と時刻の文字列をタイムスタンプに変換できます。

于 2012-09-03T16:33:19.903 に答える