-5

私は自分のウェブサイトのユーザーシステムを持っています。今日の日付に 30 日を追加するものを作成する必要があります。

更新: 日付の代わりに整数を使用することにしました。

これが私がしたことです。誰かが請求書を支払うと、「日数」の値が (値) + 30 に設定されるように設定しました

すべてのユーザーの「日」から 1 日を奪う cron ジョブを作成しました。もちろん、cron ジョブを 1 日 1 回実行するように設定しました。

4

6 に答える 6

9

strtotimeとを次のように使用dateします。

echo date('Y-m-d', strtotime("+30 days"));

また

<?php
   echo date('Y-m-d h:i:s')."\n";

   echo date('Y-m-d h:i:s', mktime(date('h'),date('i'),date('s'),date('m'),date('d')+30,date('Y')))."\n";

?>
于 2013-03-08T07:48:17.183 に答える
3

まず、このように日付を追加できます

$iSecsInDay = 86400;
$iTotalDays = 30;
$user_signup = time() + ($iSecsInDays * $iTotalDays);

次に、タイムスタンプを使用して、好きな方法で日付を生成できます。

$date = date('d-m-Y', $user_signup);

完全な参照はここにあります。http://php.net/manual/en/function.date.php

于 2013-03-08T07:51:36.043 に答える
2

strtotime関数を使用します。

strtotime('+30 days', time());
于 2013-03-08T07:47:52.223 に答える
1

実際の日付に+30日を追加し、mysqlに導入する場合は、次を使用できます。

$ nextMonthDate = date( "Ymd H:i:s"、strtotime( "+ 30日"、time()));

Ymd H:i:sは、MySQLDATETIMEの形式です。

例:

実際の日付:echo echo date( "Ymd H:i:s"、time()); -> 2013-03-08 00:37:23

+30日:echo date( "Ymd H:i:s"、strtotime( "+ 30日"、time())); -> 2013-04-07 00:37:23

于 2013-03-08T08:40:19.583 に答える
1

$NewDate=Date('y:m:d', strtotime("+30 days"));

strtodate() :

int strtotime ( string $time [, int $now = time() ] )

この関数は、英語の日付形式を含む文字列が与えられることを期待し、その形式を解析して Unix タイムスタンプ (1970 年 1 月 1 日 00:00:00 UTC からの秒数) に変換しようとします。 now が指定されていない場合は現在の時刻。

于 2013-03-08T07:49:42.330 に答える
0

関数をクラスの変数に直接割り当てることはできません。これが、追加のエラーが発生する理由です。コンストラクターに移動することを検討してください。

... 
private $user_signup = null;

public function __construct() {
    $date = new DateTime();
    $date->add(new DateInterval('P30D'));
    $this->user_signup = $date->format('Y-m-d');
}
...

関数の結果を PHP クラス内の変数に代入するも参照してください。詳細については、 OOP Weirdnessを参照してください。

于 2013-03-08T09:04:50.983 に答える