0

ユーザーがインストール開始日から入力するイベントを含むカレンダーがあります。これらのイベントは常に開始日から X 日、月、または年ごとに繰り返され、終了日はわかりません。UNIX タイムスタンプ形式で発生している次のイベントを見つける必要があります。組み込みの PHP DateInterval クラスを理解しようとしましたが、終了日が不明なため、その方法を理解できませんでした。

これは私がこれまでに持っているものです

/* User Input */
$installdate="315558000";// 1st Jan 1980 
$Every = 1; // Could be 1 =>  
$DateOption = 'Months'; // Could be 'Days' 'Months' or 'Years'

#Possible user selections 
$DateJustify = array('Days'=>j,'Months'=>n,'Years'=>Y);

#Getting the next service date into printed variables for mktime
foreach($DateJustify as $keyDate => $dt ){
${$keyDate}=date($dt,$installdate);
if($DateOption == $keyDate )
${$keyDate} += $Every; 
}

これは、mktime でタイムスタンプを付けるのに適したすべてのものを返しますが、インストール日から次の日付を与えるだけです。インストール日は日から始まるため、最終的には秒、分、時間は関係ありません

4

1 に答える 1

0

文字列を時刻に変換するには、DateTimeクラスを使用します。2 番目のパラメーターはタイム ゾーンを受け入れます。 DateTimeZoneを使用します。

$z = new DateTimeZone("Europe/Berlin");
$d = new DateTime("next wed +3 day", $z);
echo $d->format("d.m.Y H:i");
echo $d->format("U"); # or echo $d->getTimestamp(); on PHP > 5.3.0

DateTime::format()メソッドは、 date()関数のような形式を受け入れます。

于 2013-03-15T00:01:17.827 に答える