前提・実現したいこと
もっと細かく書くことにしました。
1日後、2日後、、、7日後、8日後と定期的に
SQLでデータのカウントの値を保持するというプロセスを作成しようとしています。
まずは
初期値を今と固定して、そこから1日ずつデータを保持して8日後になれば、
データを別のところへ移し、保持していたデータベースデータと固定していた今の時間の
ものをリセットしてまたカウントするというものです。
ただ今考えれば、ソースだけではDBでの現在位置の時間が保持できないためどうしようかと考えています。どう考えても保持することは難しいので、今のところDBにtimestamp組み立てて、そこに設定した現在時間を入れて初期値として考えてカウントするというものをちょっと行けそうじゃないかと思い始めたので、ごめんなさい、考え直してみます。
ただ、こうやれば、時間を固定することができるよという人がいれば教えていただきたいです!
該当のソースコード
PHP
1<?php 2try { 3 $db = new PDO('mysql:dbname=c-pro;host=127.0.0.1;charset=utf8', 'root', '' ); 4} catch (PDOException $e) { 5 echo "データベース接続エラー :".$e->getMessage(); 6} 7 8//最初に$nowのクローンと、8日後の変数作る、じょうけんぶんきで1日経過ごと[ ]に結果を配列へ組み込む、8日後になったら表していたデータの中身である配列の中身をけして、クローンのリロードと8日後変数の再設定して循環 9 10date_default_timezone_set('Asia/Tokyo'); 11$now = new DateTime(); 12//作ったが、このままでは初期値が固定されていないため固定される事はない、値を固定して、日時経過を変数として扱いたい。 13$date = $now->format('Y-m-d H:i:s'); 14 15$dateImmu = new DateTimeImmutable($date); 16 17$dtime1 = $dateImmu->modify("+1 day"); 18$dtime1 -> format("Y-m-d H:i:s"); 19 20$dtime2 = $dateImmu->modify("+2 day"); 21$dtime2 -> format("Y-m-d H:i:s"); 22 23$dtime3 = $dateImmu->modify("+3 day"); 24$dtime3 -> format("Y-m-d H:i:s"); 25 26$dtime4 = $dateImmu->modify("+4 day"); 27$dtime4 -> format("Y-m-d H:i:s"); 28 29$dtime5 = $dateImmu->modify("+5 day"); 30$dtime5 -> format("Y-m-d H:i:s"); 31 32$dtime6 = $dateImmu->modify("+6 day"); 33$dtime6 -> format("Y-m-d H:i:s"); 34 35$dtime7 = $dateImmu->modify("+7 day"); 36$dtime7 -> format("Y-m-d H:i:s"); 37 38$dtime8 = $dateImmu->modify("+8 day"); 39$dtime8 -> format("Y-m-d H:i:s"); 40 41 42 43$copy_now = $dateImmu->format('Y-m-d H:i:s');//これも初期値が変動されてしまう 44$time = "+ 1 day"; 45$purpose_time = date("Y-m-d H:i:s", strtotime($time)); 46$update_day = new DateTime($purpose_time); 47$diff = $now->diff($update_day); 48$dtime_1 =& $dtime1;//modifyの扱い方が違うらしい。 49$dtime1 = $dtime_1->format("Y-m-d H:i:s" ); 50//$dateの数値をformat変換してから1日後との比較しようとしている。 51//参照私をする事ができない 52 53 54 55//条件分岐で、今の時間が$dtimeの値よりも飢えの時にtrueにする 56if (($now > $update_day)>$date) { 57 58 echo 'SUCCESS'; 59} else { 60 echo 'FAILURE'; 61} 62 63 64 65 66?> 67 68<?php 69date_default_timezone_set('Asia/Tokyo'); 70$now = new DateTime(); 71$date = $now->format('Y-m-d H:i:s'); 72$time = "+ 1 day"; 73$fix_time = date("Y-m-d H:i:s", strtotime($time)); 74//ここの$fix_timeを固定した値として想定しています。 75if ($date> $fix_time) { 76 echo 'SUCCESS'; 77} else { 78 echo 'FAILURE'; 79} 80?> 81 82
回答1件
あなたの回答
tips
プレビュー