function aboutToExpire($date_target = null)
 {
     if ($date_target === null) {
         $date_target = plugin_movieviewer_now();
     }
     if ($this->isExpired($date_target)) {
         return false;
     }
     $date_calc = new DateTime($date_target->format('Y-m-d H:i:sP'));
     return $date_calc->add(new DateInterval('P1M')) >= $this->date_end;
 }
 function __construct($user_id, $pack_id, $viewing_period = array(), $date_confirmed = null)
 {
     $this->user_id = $user_id;
     $this->pack_id = $pack_id;
     if ($date_confirmed == null) {
         $date_confirmed = plugin_movieviewer_now();
     }
     $this->date_confirmed = $date_confirmed;
     if ($viewing_period["date_begin"] === null) {
         $viewing_period["date_begin"] = new DateTime($this->date_confirmed->format("Y-m-15 00:00:00P"));
     }
     if ($viewing_period["date_end"] === null) {
         $viewing_period["date_end"] = new DateTime($viewing_period["date_begin"]->format("Y-m-d 00:00:00P"));
         $viewing_period["date_end"]->modify('+4 months')->modify('-1 sec');
         // 前日までを 23:59:59 までとする
     }
     $this->viewing_period = new MovieViewerPeriod($viewing_period["date_begin"], $viewing_period["date_end"]);
 }
 function findValidsByUser($user_id, $date_target = null)
 {
     if ($date_target === null) {
         $date_target = plugin_movieviewer_now();
     }
     $data_dir = $this->getGlobPathByUser($user_id);
     $objects = array();
     foreach (glob($data_dir) as $file_path) {
         $object = $this->createObject($file_path);
         if ($object->viewing_period->isBetween($date_target)) {
             $objects[] = $object;
         }
     }
     return $objects;
 }
/**
 * [ブロック] 視聴開始日の選択肢を生成する
 *
 * @return string 選択肢(radio)
 */
function plugin_movieviewer_review_purchase_confirm_payment_render_begin_date_candidates()
{
    // 選択は明後日のみ
    $date_begin = plugin_movieviewer_now();
    $date_begin->modify("+2 day");
    $value = $date_begin->format("Y-m-d");
    $id = "viewing_period_date_begin_{$value}";
    $date_begin_cds = <<<TEXT
        <input type=radio id="{$id}" name="viewing_perod_date_begin" value="{$value}" checked><label for="{$id}">{$date_begin->format("m月d日")}から</label>
TEXT;
    return $date_begin_cds;
}
 function __construct($user_id, $purchase_method, $item_ids, $date_requested, $date_confirmed = null, $viewing_period = array())
 {
     $this->user_id = $user_id;
     $this->purchase_method = $purchase_method;
     $this->review_pack = new MovieViewerReviewPack($item_ids);
     $this->date_requested = $date_requested;
     if ($date_confirmed == null) {
         $date_confirmed = plugin_movieviewer_now();
     }
     $this->date_confirmed = $date_confirmed;
     if (!isset($viewing_period["date_begin"])) {
         $viewing_period["date_begin"] = new DateTime($this->date_confirmed->format("Y-m-d 00:00:00P"));
         $viewing_period["date_begin"]->modify('+2 days');
     }
     if (!isset($viewing_period["date_end"])) {
         $viewing_period["date_end"] = new DateTime($viewing_period["date_begin"]->format("Y-m-d 00:00:00P"));
         $viewing_period["date_end"]->modify('+1 months')->modify('-1 sec');
         // 前日までを 23:59:59 までとする
     }
     $this->viewing_period = new MovieViewerPeriod($viewing_period["date_begin"], $viewing_period["date_end"]);
 }