
PHP4.x.xです。
初心者です。
ショッピングカートの注文データを閲覧するページで
「今月一ヶ月間の売り上げ」という表示の仕方をしたいです。
売り上げテーブルのorder_dateというフィールドに注文された日時がUNIX時間(エポック秒)で入っています。
人力で2009年11月1日0時の数値を求め、2009年11月30日11時59分59秒の数値を求め、select * order where order_date >******* and order_data <****** とすることは簡単なのですが・・・あまりにも美しくない、かつ何年後までやるねん・・・と面倒くさい。
何かいい方法でしょうか?
No.3ベストアンサー
- 回答日時:
質問内容から察するに、月初め(2009年11月1日0時0分0秒)と月末日(2009年11月30日11時59分59秒)をいちいち人力で求めたくないということですか?
(年・月を入力したくない。月の最終日をわざわざ調べて入力したくない)
年・月を入力せず、今月のみでよいのなら下記のようなのはどうでしょう?
月の末日($ed)は翌月の0日で求められました。(越年も対応:2010/1/0=>2009/12/31)
-------------- ↓ここから↓ ----------------
<?php
$year = date('Y', time());
$month = date('n', time());
$st = mktime( 0, 0, 0, $month, 1, $year);
$ed = mktime(23, 59, 59, $month+1, 0, $year); // 翌月0日=当月最終日
$sql = "select * order where order_date >={$st} and order_data <={$ed}";
echo("sql:".$sql."<br>\n");
// 以下は確認用
echo("st:".$st."<br>\n");
echo("ed:".$ed."<br>\n");
$st_stm = date("Y / m / d H:i:s", $st);
$ed_stm = date("Y / m / d H:i:s", $ed);
echo("st_stm:".$st_stm."<br>\n");
echo("ed_stm:".$ed_stm."<br>\n");
?>
-------------- ↑ここまで↑ ----------------
(確認テストなど)任意の年・月で行ないたいなら
$year = $_GET['y'];
$month = $_GET['m'];
などを使って下さい。(要バリデーション)
No.1
- 回答日時:
UNIX_TIMESTAMP関数を利用して以下のようなSQL文ではどうでしょうか?
SELECT * FROM `order` WHERE `order_date` >= UNIX_TIMESTAMP('2009-11-1 00:00:00') AND `order_date` <= UNIX_TIMESTAMP('2009-11-30 23:59:59');
また2009年11月は2009年11月1日0時0分0秒『以上』で2009年12月1日0時0分0秒『より小さい』範囲ですから不等号をきちんと使い分けて以下のようにした方が楽だとおもいます。末日を計算する手間が省けますから。
SELECT * FROM `order` WHERE `order_date` >= UNIX_TIMESTAMP('2009-11-1 00:00:00') AND `order_date` < UNIX_TIMESTAMP('2009-12-1 00:00:00');
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- Excel(エクセル) エクセルの数式で教えてください。 3 2022/12/22 17:29
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Excel(エクセル) Excel について <TIMEVALUE> 3 2022/10/20 15:57
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- その他(ネットショッピング・通販・ECサイト) 12月15日にorder@krsaid.comに注文支払いして入金確認と準備期間3日から8日まで発送 1 2022/12/26 10:29
- Excel(エクセル) エクセルの数式で教えてください。 2 2022/12/23 14:57
- その他(教育・科学・学問) エクセル関数について 2 2022/12/23 08:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP8でWarning:Undefined varia...
-
phpの問い合わせフォームを作っ...
-
composerをインストールしたい...
-
Content-Typeが機能していない?
-
PHPでユーザー情報を入力して簡...
-
メールフォームのタイトルが文...
-
PHPのエラーの解消法について教...
-
PHPからCSVをアップロード後、m...
-
php 入力画面から確認表示画面...
-
csvファイルについて教えて下さ...
-
文字列を段落で分ける方法を教...
-
PHPでMysqlにデータがあるかど...
-
フォームで戻った際に入力済み...
-
MySql PHP 2つのテーブルをJOI...
-
どうして送信されないのでしょ...
-
phpにおいて$xを計算式の文字列...
-
グローバルスコープはありますか?
-
クラス
-
【PHP/MySQL】コード上で生成...
-
if(preg_match("/[^0-9]/",$gu_...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgresのカレンダーについて
-
PHP+MySQLで月ごとの数量を表...
-
掲載日と更新日の管理の仕方
-
配列の重複を削除後、削除分の...
-
複数のカテゴリを選択した上でL...
-
SQLでMAXを使った
-
データ更新用のphpの記述でデー...
-
PHPでMySQL内のデータの合計値...
-
【Wordpress/PHP】更新した記事...
-
UNIX時間で今月1日~末日を取得...
-
構造体のプログラミング......
-
日付で0を抜く
-
By moving its office to Calif...
-
EXCELマクロのSQL文での引用符...
-
preg_replace, ereg_replace
-
今日が6月か、9月か、12月...
-
MySQL + PHP 同じテーブル内で...
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
単一グループのグループ関数で...
おすすめ情報