質問編集履歴
2
修正しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -55,4 +55,80 @@
|
|
55
55
|
|
56
56
|
}
|
57
57
|
?>
|
58
|
+
```
|
59
|
+
|
60
|
+
修正します。
|
61
|
+
アドバイスいただいた内容を参考にし、
|
62
|
+
「時間差($time['0'])」を加算していくのではなく
|
63
|
+
下記のコードのように開始時間と終了時間の差を
|
64
|
+
work_timesというテーブルに入れていくことにしました。
|
65
|
+
そして、そのテーブルの時間合計を取得して出力するまではできたのですが、
|
66
|
+
例えば、50秒の時間合計だったときに
|
67
|
+
09:00:50
|
68
|
+
というような表示になってしまいます。
|
69
|
+
これを直すにはどのようにすればいいでしょうか。
|
70
|
+
|
71
|
+
php.iniのタイムゾーンは
|
72
|
+
date.timezone = Asia/Tokyo
|
73
|
+
になっております。
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
```ここに言語を入力
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
|
82
|
+
<?php
|
83
|
+
if(isset($_POST['start'])) {
|
84
|
+
|
85
|
+
// 今日の日付のstart_timesテーブルのレコード数を取得
|
86
|
+
$start_times_table = $db->query('SELECT * FROM start_times WHERE start_time_date = CURRENT_DATE');
|
87
|
+
$start_times_records = $start_times_table->rowCount();
|
88
|
+
|
89
|
+
// 今日の日付のstop_timesテーブルのレコード数を取得
|
90
|
+
$stop_times_table = $db->query('SELECT * FROM stop_times WHERE stop_time_date = CURRENT_DATE');
|
91
|
+
$stop_times_records = $stop_times_table->rowCount();
|
92
|
+
|
93
|
+
// start_timesとstop_timesのレコード数が同じかどうか, 同じであればstart_timesにインサート
|
94
|
+
if($start_times_records == $stop_times_records){
|
95
|
+
$db->exec('INSERT INTO start_times SET start_time_date=NOW(), start_time=NOW()');
|
96
|
+
} else {
|
97
|
+
echo '<br>' . '一度開始が押されています。「終了」を押してください' . '<br><br>';
|
98
|
+
}
|
99
|
+
} else if(isset($_POST['stop'])) {
|
100
|
+
$db->exec('INSERT INTO stop_times SET stop_time_date=NOW(), stop_time=NOW()');
|
101
|
+
|
102
|
+
$starts = $db->query('SELECT * FROM start_times ORDER BY id DESC LIMIT 1');
|
103
|
+
$stops = $db->query('SELECT * FROM stop_times ORDER BY id DESC LIMIT 1');
|
104
|
+
$start = $starts->fetch();
|
105
|
+
$stop = $stops->fetch();
|
106
|
+
$db->exec("INSERT INTO work_times SET work_time_date = NOW(), work_time = TIMEDIFF( '". $stop['stop_time'] ."' , '" . $start['start_time'] ."' )");
|
107
|
+
|
108
|
+
|
109
|
+
}
|
110
|
+
$work_times = $db->query('SELECT SUM(work_time) FROM work_times WHERE work_time_date = CURRENT_DATE');
|
111
|
+
$work_time = $work_times->fetch();
|
112
|
+
echo date('h:i:s', $work_time['SUM(work_time)']);
|
113
|
+
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
// 今日のstart,stopのデータを1件ずつ交互に全て表示
|
118
|
+
$start_times = $db->query('SELECT * FROM start_times WHERE start_time_date = CURRENT_DATE');
|
119
|
+
$stop_times = $db->query('SELECT * FROM stop_times WHERE stop_time_date = CURRENT_DATE');
|
120
|
+
while($start_time = $start_times->fetch()) {
|
121
|
+
echo "開始" . $start_time['start_time_date'] . " " . $start_time['start_time'] . '<br>';
|
122
|
+
$stop_time = $stop_times->fetch();
|
123
|
+
echo "終了" . $stop_time['stop_time_date'] . " " . $stop_time['stop_time'] . '<br>';
|
124
|
+
|
125
|
+
$times = $db->query("SELECT TIMEDIFF('". $stop_time['stop_time'] ."' , '" . $start_time['start_time'] ."')" );// 時間差
|
126
|
+
$time = $times->fetch();
|
127
|
+
echo $time['0'] . '<br>' . '<br>';
|
128
|
+
|
129
|
+
|
130
|
+
}
|
131
|
+
|
132
|
+
?>
|
133
|
+
|
58
134
|
```
|
1
phpMyAdminタグを削除しました
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|