2

私は、管理すべき多くの操作があるプロジェクトに取り組んでいます。各オペレーションには終了日があり、一定量のタスクで構成されています。

タスクが完了していない場合、リマインダー (画面に表示されるテキスト)を表示したい[end date]- X days

すべてのデータはMySQLデータベースに保存され、私はPHPHTML5を使用しています。

  • 日付と曜日を操作する (計算を実行する)のに最適なデータ型は?
  • Date()簡単な方法で日数を計算して差し引くことはできますか?

具体的な技術的な質問はありませんが、最善の進め方を共有することは良いことだと思いますよね?

進行するための最良の方法は何かを知り、どんな提案にも対応できることに興味があります!

4

3 に答える 3

2

デフォルト値のCURRENT_TIMESTAMPを使用できるため、mysql のタイムスタンプフィールドに日付を保存することをお勧めします。

mysql:

select now();
+---------------------+
| now()               |
+---------------------+
| 2015-04-08 12:13:18 |
+---------------------+
select now() - interval 1 day;
+------------------------+
| now() - interval 1 day |
+------------------------+
| 2015-04-07 12:13:29    |
+------------------------+
select now() - interval 7 day;
+------------------------+
| now() - interval 7 day |
+------------------------+
| 2015-04-01 12:13:38    |
+------------------------+
select now() - interval 1 month;
+--------------------------+
| now() - interval 1 month |
+--------------------------+
| 2015-03-08 12:13:58      |
+--------------------------+

php:

<?php
var_export([
    date('Y-m-d H:i:s', strtotime('now')),
    date('Y-m-d H:i:s', strtotime('- 1 day')),
    date('Y-m-d H:i:s', strtotime('- 7 day')),
    date('Y-m-d H:i:s', strtotime('- 1 month')),
]);
/*
Result:

array (
  0 => '2015-04-08 15:15:42',
  1 => '2015-04-07 15:15:42',
  2 => '2015-04-01 15:15:42',
  3 => '2015-03-08 15:15:42',
)
*/

また、次のようなテーブルを作成すると非常に役立つ場合があります。

CREATE TABLE t1 (
    ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

その結果、フィールド ts が自動的に設定および更新されます...

于 2015-04-08T12:17:28.580 に答える
1

日付をDATETIMEとしてデータベースに格納できます。

次に、PHP でstrtotime()およびdate()関数を使用して管理可能なデータに変換します。

于 2015-04-08T12:14:47.483 に答える
0

使用するのに最適なデータ型はDateTimeクラスです。

DateTime クラスを使用して減算を実行するには、 DateIntervalクラスを使用する必要があります。

これらの 2 つのクラスを使いこなすには時間がかかりますが、書式設定や日付操作が後で簡単になります。

于 2015-04-08T12:15:34.057 に答える