PHP と MySQL を作成したことのあるプログラマは、UNIX タイムスタンプと書式設定された日付には時差があることをよく知っています。UNIX タイムスタンプは保存や処理には便利ですが、書式設定された日付は直感的ではありません。ただし、Unix タイムスタンプほど処理が簡単ではないため、相互に変換する必要がある場合があります。ここでは相互に変換する方法をいくつか示します。
1. MySQLで完了
このメソッドはMySQLクエリステートメント内で変換されるため、利点はPHPパーサーの解析時間がかからず、データベースでのみ使用できることです。クエリには制限があります。
1. UNIX タイムスタンプを日付に変換する関数を使用します: FROM_UNIXTIME()
一般形式: FROM_UNIXTIME(1156219870) を使用します。
2. 日付を UNIX タイムスタンプに変換する関数を使用します: UNIX_TIMESTAMP()
一般形式: UNIX_TIMESTAMP(' 2006- 11-04 12:23:00');
例: その日のレコード数を mysql でクエリします:
$sql="select * from message Where DATE_FORMAT(FROM_UNIXTIME(chattime),'%Y-%m- %d') = DATE_FORMAT(NOW(),'%Y-%m-%d') order by id desc”;
もちろん、PHP で変換することも選択できます。PHP での変換について話しましょう。
2. PHPで完了する
この方法は、データがデータベースでクエリによって取得されたかどうかに関係なく変換できること、および変換範囲が制限されていないことです。欠点は、PHP パーサーの解析時間がかかり、速度が比較的遅いことです。
1. UNIX タイムスタンプを日付に変換する関数を使用します: date()
一般形式: date('Y-m-d H:i:s', 1156219870);
2. 日付を UNIX タイムスタンプに変換する関数を使用します: strtotime()
一般形式: strtotime('2010-03-24 08:15:42');
php 日付からタイムスタンプ、指定された日付からタイムスタンプ
php 日付からタイムスタンプ、指定された日付からタイムスタンプ、PHP スケジュールされたタスク。
過去 2 日間で、次の機能を実装します。
特定の条件に達すると、サーバーがユーザーに複数のテキスト メッセージを送信します。
基本的な考え方: Linux は定期的にスキャンを行い、条件を満たすユーザーがいる場合はテキスト メッセージが送信されます。
ただし、ユーザーに迷惑をかけないように、テキスト メッセージは日中 8:00 ~ 20:00 の間にのみ送信できるようにする必要があります。この時間帯を毎日取得するにはどうすればよいですか?
次のコード:
<? $y=date("Y",time()); $m=date("m",time()); $d=date("d",time()); $start_time = mktime(9, 0, 0, $m, $d ,$y); $end_time = mktime(19, 0, 0, $m, $d ,$y); $time = time(); if($time >= $start_time && $time <= $end_time) { // do something.... } ?>