-1

私の仕事は、DB から取得した日付を分割し、8 年後の日付を見つけることです。

私の試みはここにあります -

変数:

$doo = $info['s_doo']; // 2013-05-01
$validity = $info['s_validity']; // 8

1を試す

$str="+".$validity." year";
echo date("d / m / Y",strtotime($str,$doo)); // Does not work

トライ2

$str="+".($validity*12)." month";
echo date("d / m / Y",strtotime($str,$doo)); // Does not work

トライ 3

$str="+".($validity*52)." week";
echo date("d / m / Y",strtotime($str,$doo)); // Works but Wrong result

ついに

list($y, $m, $d) = split('-',$doo); // Line 107

$str = ($y+$validity)."-".$m."-".$d;
echo date("d / m / Y",strtotime($str)); // 01 / 05 / 2021

出力は次のとおりです。

非推奨:関数 split() は、D:\****\accinfo.php 行 107
01 / 05 / 2021で非推奨です

正しい出力が生成されている場合、エラー メッセージが表示されるのはなぜですか? Deprecatedメッセージの目的がわかりません。また、リストの代わりに配列を使用し、-split('-',$doo,10); split('-',$info['s_doo'],10); split('[-]',$doo);などの分割関数を使用してみました...

私はその仕事をするための良い方法が必要です。ありがとうございます。

4

4 に答える 4

2

非推奨とは、PHP 言語が将来的に関数のサポートを停止することを意味します。言語の今後のバージョンから削除されるため、現在動作するコードがあり、将来 PHP をアップグレードすると、この新しいバージョンでは使用できないため、コードが壊れます。非推奨の関数はすべて、新しいより優れた関数に置き換えられます。それを見つけて、関数を新しいものに置き換えます。

ユーザーに通知するために、問題の関数が現在の PHP バージョンで現在動作している場合でも、PHP は非推奨のメッセージを表示します。

于 2013-05-01T16:06:55.367 に答える
1

split()関数は非推奨です。explode('-',$doo)文字列を配列に分割する which を使用する必要があります。

于 2013-05-01T16:06:11.400 に答える
1

前述のように、 HERE split()は非推奨です。

次のように代わりにexpand()を使用します。

list($y, $m, $d) = explode( '-' , $doo );
于 2013-05-01T16:06:19.787 に答える