質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

508閲覧

HPのお知らせ新着マークを「1か月以内」であれば表示させる方法について

Rimxas

総合スコア0

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/10/14 07:03

編集2021/10/14 08:37

実現したいこと

HPのお知らせ新着マーク「new」を参考サイトでは「3日以内」になっているところを「1か月以内」に変更したいです。

ご教授いただければ幸いです。

言語

PHP

参考にしたコード

<?php // 「$days = 3」で「new」をつける期間を3日以内にする $days = 3; // 「date_i18n(‘U’);」はWordpressの日付取得関数 $today = date_i18n('U'); // 「get_the_time(‘U’);」はその記事の投稿日時を取得する関数 $entry_day = get_the_time('U'); // 「86400」は1日の秒数(60秒×60分×24時間=86400) $keika = date('U',($today - $entry_day)) / 86400; // 「if ( $days > $keika ):」の条件判定で、指定した日数より経過した日数が低い場合は「new」をつける処理をします。 if ( $days > $keika ): echo 'new'; endif; ?>

修正するコード

$keika = date('U',($today - $entry_day)) / 86400;

試したこと

「日」単位ではなく、「月」単位なので(60秒×60分×24時間×30日=2592000)で計算し、2592000で割りました。

$keika = date('U',($today - $entry_day)) / 2592000;

上記の記述で合ってますでしょうか。
ご教授お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dit.

2021/10/14 07:33

1か月を30日として扱うと考えた場合は他の部分を変えずに`$days = 30;`とするだけだと思うのですがそれだと問題がありますか?
hentaiman

2021/10/14 07:44

> 分かる範囲の変更 何も分かってないし何も調べてないし何も確認していないように見えます
Rimxas

2021/10/14 08:18

@dit様 ご教授ありがとうございます。 `$days = 30;`でif文の処理がうまくできました。 下記の「86400」が1日の秒数なので86400×30日の2592000でもうまく表示できました。 $keika = date('U',($today - $entry_day)) / 86400;
Rimxas

2021/10/15 07:18 編集

@hentaima様 ご指摘ありがとうございます。 質問をする際の記述の仕方、またもっとお調べしてから問題解決に取り組むように以後気を付けます。
hentaiman

2021/10/15 00:42

未来の投稿予約情報の表示にしたかったから$keikaを$mirai=30に書き変えてみました、っていうぐらいいい加減な修正をしている事は理解した方が良いです
dit.

2021/10/15 02:43

てっきり「2/20の1か月後は3/20と考えるから、(30日換算の場合)3/21にnewが出るのは困る」という趣旨の質問かと思いました。 1か月を30日で考えることと、月単位で指定をすることを優先するなら「試したこと」のコードでもご自身が納得してればいいのではないでしょうか。 $days = 30;にした方が圧倒的に楽だと思いますが…。 対応した方法を書いて自己解決で良いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問