1文字と2文字の両方がタイムゾーンとして解釈されます(表「使用済み記号」、行「tz」)。6桁は次のように解釈されHHMMII
ます(表「24時間表記」、行「時、分、秒、コロンなし」)。
有効な形式
1番目と3番目のケースでは、解析が成功し、strtotime
タイムスタンプを返し、date
対応する日付を出力します。最初のケースが成功する理由は明らかです。3番目のケースでは、軍のタイムゾーンを1文字で参照できることを覚えておいてください。そうすれば、結果は理にかなっています。このコードに従ってみましょう:
$zones = range('a', 'z');
$last = null;
foreach($zones as $tz) {
$ts = strtotime($tz);
if ($last !== null) {
echo "TZ $last[0] => TZ $tz: change = ".($ts - $last[1])."\n";
}
$last = array($tz, $ts);
}
このプリント
TZ a => TZ b: change = -3600
TZ b => TZ c: change = -3600
TZ c => TZ d: change = -3600
TZ d => TZ e: change = -3600
TZ e => TZ f: change = -3600
TZ f => TZ g: change = -3600
TZ g => TZ h: change = -3600
TZ h => TZ i: change = -3600
TZ i => TZ j: change = -1346649725
TZ j => TZ k: change = 1346646125
TZ k => TZ l: change = -3600
TZ l => TZ m: change = -3600
TZ m => TZ n: change = 46800
TZ n => TZ o: change = 3600
TZ o => TZ p: change = 3600
TZ p => TZ q: change = 3600
TZ q => TZ r: change = 3600
TZ r => TZ s: change = 3600
TZ s => TZ t: change = 3600
TZ t => TZ u: change = 3600
TZ u => TZ v: change = 3600
TZ v => TZ w: change = 3600
TZ w => TZ x: change = 3600
TZ x => TZ y: change = 3600
TZ y => TZ z: change = -43200
あるタイムゾーンから次のタイムゾーンに移動するときの連続性を確認できます。'j'
存在しないタイムゾーンの不連続性(ここでは、以下で説明するのと同じ結果で解析が失敗します)。'n'
UTC+12からUTC-1に移動するタイムゾーンでの不連続性など。
無効な形式
2番目と4番目のケースでは、解析が失敗してstrtotime
戻りfalse
、これは呼び出した場合と同じ効果がありdate("d-m-Y", 0)
ます。つまり、エポックの開始(1970年1月1日00:00:00)をフォーマットします。これは、通常の型ジャグリング規則に従ってfalse
整数に変換されるために発生します。0
strtotime('x')
本当に何が戻ってきますか?
UTC-11のタイムゾーンで現在の時刻を返します(これは「X線」軍事タイムゾーンです)。現地の時間とタイムゾーンに応じて、これは通常、あなたの観点からは「今日」または「明日」のいずれかです。たまたまUTC-11未満の場合は、「昨日」である可能性もあります(ただし、そうなる可能性はほとんどありません)。