私はphpとcodeigniterの初心者です。PHPマイナス1週間日曜日
私は自転車に乗った週のキロの合計のチャートのx軸にラベルを付けるために使用される関数を持っています。それは、今日の日付から、日曜日の0日か、1,2,3などの配列を渡したものとしてカウントダウンすることによって動作します(または動作するはずです)。
は、私はPHPバージョン5.6.19を使用していますが、これは私のコードです:モデルで
:コントローラで
public function week_start($date, $counter){
$tstring = strtotime($date);
$wknumber = ($counter + 1);
$start = strtotime("-$wknumber weeks sunday", $tstring);
return array(date('M d', $start));}
:ビューで
$datenumbers = array(0, 1, 2, 3, 4, 5, 6, 7);
$dateResult = $this->bike_model->week_start(date("Y/m/d"), $datenumber);
:
for ($i = 0; $i < 8; $i++){
echo "<text class = \"axis\" y = \"357\" x = \"";
echo 26 + ($i*70);
echo "\" dy = \".35em\">";
echo $dates_for_table[$i];}
私はそれを持っていました数日間、それは持っている必要がありますように私はx-axisに最初の番号として7月3日日曜日を示しています。しかし、今日、それは日曜日であり、私は今7月10日の日曜日を私の最近の週と言うことを期待しています。しかし、それは最後の日曜日をまだ見せている!
私の質問は、ここにバグがあるのか、私は「1週間の日曜日」がうまくいくのかと誤解していますか?
私の目標は、引数として私の関数を0にすることです。これは、最近の週の開始を返します。それは、日曜日の場合は現在の日曜日か過去の日曜日の場合です。私は日曜日かどうかをチェックする関数にif elseを追加して回避策を見つけました。
if ($tstring == strtotime('this Sunday')){
$wknumber = $counter;}
else{
$wknumber = ($counter + 1);}
しかし、これは気難しいと感じ、私はよりエレガントな方法を探しています。私はまた、それがどのように機能しているかを理解していると思っていたので、「日曜日の一週間」に何が間違っていたのか理解したい。
ありがとうございました!ここで
私はあなたの古いコードは '$開始=(日付(「W」、$のtstringを)持っていた参照== 0)? $ tstring:strtotime( 'last sunday'、$ tstring); '。それはあなたの問題を解決していませんでしたか? – codisfy
そのコードは私が試したものでしたが、それは私の現在の日曜日にx軸全体に渡って終了しました。私は実装する方法をもっと考えさせるために、そのコードをモデルのノートに入れました。 – Cyclist
私はその代替コードをもう一度試しました。基本的に、問題は日曜日かどうかをチェックしていて、アレイのすべての値について今日の日付を返すかどうかでした。私が軸上の各点で1週間早く取得できると思う唯一の方法は、元の質問の最後にあるif/else文でした。私は今週の " - $ i週間の日"が正確に何をしているかについてはっきりしていないので、私のコードは今*働いているように見えますが、この質問を開いたままにしておきます。日曜日以外の毎日前の日曜日を与えますか?その場合、それはあなたに現在の日曜日を与えますか? – Cyclist