phpの記述に関する指示が適切かどうかと、必要な改善方法についての質問

このQ&Aのポイント
  • php初心者によるワードプレスのテキストにおける記述方法についての質問です。
  • 指示通りにNetbeansで記述を行った際にエラーメッセージが表示されました。
  • 指示に関する改善方法や適切な記述方法について教えてください。
回答を見る
  • ベストアンサー

phpの記述に関して教えてください

php初心者です。 とあるワードプレスのテキストに、下記のように記述する旨の指示がありました。 <span class="sep">投稿日:<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"> <time class="entry-date" datetime="<?php the_time( 'Y-m-d' ); ?>" pubdate="<?php the_time( 'Y-m-d' ); ?>"> <?php the_time( get_option( 'date_format' ) ); ?> </time> Netbeansで上記の記述を行ったところ、 Bad value " " for attribute "href" on element "a": DOUBLE_WHITESPACE in PATH. Syntax of IRI reference: Any URL. For example: '/hello', '#canvas', or 'http://example.org/'. Characters should be represented in NFC and spaces should be escaped as '%20'. Bad value " " for attribute "datetime" on element "time": The literal did not satisfy the date format. Syntax of date or time: (This format deviates from the spec draft.) An ISO 8601 date (i.e. 'YYYY-MM-DD'.), time (i.e. 'hh:mm' optionally followed by ':ss' optionally followed by '.' and digits) optionally with a time zone designator (i.e. either 'Z', '+hh:mm' or '-hh:mm') or both date and time separated by 'T'. Examples: '1996-01-01T12:05:25', '1996-01-01', '12:05:25', '1996-01-01T12:05:25.6-02:00' 等のメッセージが出現します。phpの記述として、テキストの指示は適切なものなのでしょうか? 改めるならば、どのようにすべきでしょうか?

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

http://wpdocs.sourceforge.jp/テンプレートタグ/the_time http://jp2.php.net/manual/ja/function.date.php the_time()の引数にはどういうフォーマットが望ましいかっていうのは 公式ドキュメントなり見てもらった方が確実だと思います Excelなんかだったらyyの場合は二桁表記だとか なんか連続してる数で変わったりしてたような気がしますが PHPでは多分それはないです yが二桁、Yが四桁ってカンジなんで the_time()の引数をYYYY-MM-DDとしても ちゃんと動いてるんなら別にいいんですが マニュアルではそうはなってないので どっちかって言うとテキスト通り Y-m-dのほうがいいんじゃなかな?って思います timeタグについては調べてみた方がいいと思います

kaisinjuku04
質問者

お礼

ご回答感謝いたします。 つたない読解力で警告文を読む限り、古い表記法のように読み取れたものでして。 大文字で4文字、小文字で2文字という書きかたは、普通に使われるものなのですね。 ありがとうございました。

その他の回答 (1)

回答No.1

WordPressはWordPress とくにWP_queryクラスがある前提で 動く関数ばっかりなんで ふつうにPHPのチェッカーにかけても不正だらけです 見たカンジ、the_timeがWPの関数である為に 『the_time()なんて関数ないよ だから戻り値も何にもないものだってしとくよ だからtimeのdate timeの値としては不正だよ』 って言われてるカンジですよね

kaisinjuku04
質問者

お礼

早速の回答ありがとうございます。 指示通りに記述してWPは問題なく動作していたのですが、記述法として正しいのかどうかが気になっていました。せっかくならば、より正確な記述で覚えようかと思い質問しました。 問題ないようなので安心しました。

kaisinjuku04
質問者

補足

追加質問になって申し訳ありません。 日付に関しては、 'YYYY-MM-DD' と記述したほうが好ましいのでしょうか?  そう記述しても、WPの動作には影響しないようなのですが。

関連するQ&A

  • 時間の計算の方法

    2つのStr(time1、time2)に「yyyy/mm/dd hh:mm:ss」の形で データが入っていて、time2 - time1をtime3に「hh:mm:ss」に フォーマットして入れたいのですが、 VBの場合、  new1 = CDate(time1)  new2 = CDate(time2)  new3 = new2 - new1  time3 = Format(new3, "hh:mm:ss") で可能だと思いますが、ASPの場合はどのようにすればいいのですか? Formatを認識しないらしく、文字化けしてしまうので、 どなたか教えてください。よろしくお願いします。 まだASP歴、3日目なもので。。。。

  • DATETIME型からUNIX時間を求める方法

    現在、MYSQL、DATETIME型 YYYY-MM-DD HH:MM:SS からUNIX時間を求める際に、気軽に質問出来る詳しい方が知り合いにおらずPHP学習中で知識が乏しいため、YYY-MM-DD HH:MM:SS をスペースで分割、をハイフンで分割、HH:MM:SSをコロンで分割、その後、mktimeに当てはめてUNIX時間を求めています。 他に簡単にDATETIME型からUNIXTIME求める関数などがありましたらご教示頂けましたら嬉しいです。 それとも、計算が必要な日時をMYSQLに格納する場合はINSERTする場合にUNIX時間でINSERTし、表示が必要な場合に、DATE関数等で日時として表示する方が良いのでしょうか?

    • ベストアンサー
    • PHP
  • PHPのインストール

    はじめまして。 PHPをインストールしたのですが、APACHEさんを起動すると下記のようなメッセージが出てしまいます。 === Syntax error on line 1022 of c:program files/Apache Group/Apache/conf/httpd.conf: addtype requires at least two agents, a mine type followed by one or more fille extensions === APACHEはここから入手しました。(APACHEのみでは正常に起動します) http://www.apache.org/dist/httpd/binaries/win32/ (apache_1.3.24-win32-x86-no_src.msiです) PHPはここから入手しました。 http://www.php.net/downloads.php (PHP 4.1.2 zip package [5,824Kb] - 12 March 2002です) c:program files/Apache Group/Apache/conf/httpd.conf:の最終行に下記の記述も加えました。 LoadModule php4_module c:/php/sapi/php4apache.dll AddType application/x-httpd-php.php.phtml どうすればPHPをインストールできるのか、ご指導いただければ幸いです。 環境 OS:win98 私:初心者 参考にしたもの:INTERNET magazine 2001.6月号(古!)

    • ベストアンサー
    • PHP
  • Date型の範囲を超える数値について

    経過時間を求めるときに、 dim Time as Date dim Keika as Date Keika = Now - Time Keika = Format(Keika, "hh:mm:ss") でよいと思うのですが、経過時間が24時間以上になる可能性のある プログラムはどのように書けばいいのでしょうか? 例えば、53:49:12のように計算したいのですが。 Date型は23:59:59の範囲しかダメなんですよね・・・・。

  • シェル内で「'」に囲まれた部分への変数の展開

    oracleにアクセスするシェルを作成しており、期間指定の部分を変数で 指定したいと思っています。 しかしシングルクォーテーションに囲まれた部分の扱い方がよくわからず、 やむを得ず、変数内にクォーテーションを持たせ対処しました。 具体的には【現状】に示すようなコードです。 【現状】でも動くには動くのですが、将来的にはシェルの引数として 渡して実行したい為、出来れば変数内にはクォーテーションを持たせず 【希望】に示すイメージのコードにしたいと思っています。 単にエスケープの仕方の問題のような気がしているのですが、 なかなかうまくいきません。 変数の定義の部分が【希望】のとおりであれば、SQL部分の文字列は 多少変えてしまっても問題ありません。 シェル内で「'」に囲まれた部分への変数の展開させる方法、 これを教えてください。 よろしくお願いします。 --【現状】------------------------------------- FROM_DATETIME="'2010-10-10 00:00:00'" TO___DATETIME="'2010-12-10 00:00:00'" sqlplus scott/tiger@oracle << EOT select count(*) from tablename where columnname between to_date(${FROM_DATETIME}, 'YYYY-MM-DD HH24:MI:SS') and to_date(${TO___DATETIME}, 'YYYY-MM-DD HH24:MI:SS') / quit EOT ----------------------------------------------- --【希望】------------------------------------- FROM_DATETIME=2010-10-10 00:00:00 TO___DATETIME=2010-12-10 00:00:00 sqlplus scott/tiger@oracle << EOT select count(*) from tablename where columnname between to_date(\'${FROM_DATETIME}\', 'YYYY-MM-DD HH24:MI:SS') and to_date(\'${TO___DATETIME}\', 'YYYY-MM-DD HH24:MI:SS') / quit EOT -----------------------------------------------

  • file_get_contentsについて

    file_get_contents()で、 <time datetime="<?php echo $mtime = date('Y-m-d\TH:i:s', getlastmod()); ?>"><?php echo $mtime; ?></time> を取得すると、 <time datetime="<?php echo $mtime = date('Y-m-d\TH:i:s', getlastmod()); ?>"><?php echo $mtime; ?></time> (全く同じ文字列)を吐き出しますよね。 そして、それをechoすると、<?php ~ ?>はそのままHTML上に表示されます。 これを、PHPを実行して、 <time datetime="2010-02-19T23:40:10">2010-02-19T23:40:10</time> のように表示させるようにするには、どのようにするのが一般的なのでしょうか。 先人の皆さんの知恵をおかしください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPの文字コードについて

    Wordpressで作成してWebページを作成しているPHP初心者です。 WordpressでUTF-8ボム無と指定されているので、全てUTF-8ボム無で揃えています。 PHPで出力される文字列は問題ないのですが、PHP内に日本語を埋め込んで 出力しようとすると下記の「更新日」の部分がXYなどと文字化けします。 ブラウザ上でShift-jisに変更すると「更新日」はきちんと表示されますが、 他の出力される文字列が化けてしまいます。 どこかで文字列の指定をしなければならないのでしょうが、まったくわかりません。 (FTP上でサーバーファイルを見た文字列は化けていません。 ブラウザに表示される段階で文字化けします。) どこをどのように変更、または追加したら良いのでしょうか。 <article <?php post_class(); ?>> <header class="entry-header"> <time pubdate="pubdate" datetime="<?php the_time('Y-m-d'); ?>" class="entry-date"> <?php echo'更新日:' ?><?php the_time(get_option('date_format')); ?></time> <h1 class="entry-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1> </header> <section class="entry-content"> <?php the_content(); ?> </section> </article> 宜しくお願い致します。

    • 締切済み
    • PHP
  • postgre ⇒ mysql にした場合のSELECT文の作り方

    理由があって既存DBをpostgreからmysqlにすることになりました。 mysqlではto_charが使えないとのことで、DateFormatに差し替えてみましたが以下の部分が正常に動作しません。 どこがおかしいのかわかる方教えてください。 ■postgre $R = mysql_query("select *,to_char(ymd1,'YYYY/FMMM/FMDD') as ymd, to_char(ymd1,'HH24:MI') as time1, to_char(ymd2,'HH24:MI') as time2 from sch_table where ymd1 between '$b_ymd' and '$e_ymd' order by time1"); ■mysql $R = mysql_query("select DATE_FORMAT(date,'%Y/%c/%e') as ymd, DATE_FORMAT(ymd1,'%H:%i') as time1, DATE_FORMAT(ymd2,'%H:%i') as time2 from sch_table where ymd1 between '$b_ymd' and '$e_ymd' order by time1");

    • ベストアンサー
    • MySQL
  • date型

    date型のカラムに1:00という時間を入れたいけどうまくいきません。yyyy/mm/dd hh:mmという形になります。PHPで取り出すときにSUBSTR関数を使って取り出そうとしても取り出せません。無理なのでしょうか??

  • PHP タイムスタンプ

    タイムスタンプで値を取得して、比較するプログラムなのですが、なぜか $time = mktime(0, 0, $_POST['hh'], $_POST['dd'], $_POST['mm'], $_POST['yyyy']); の値が”-1”で返ってきてしまいます。 何故でしょうか? <?php echo "<select name=\"yyyy\">"; for ($i = 2010; $i < 2012; $i++) { $selected=$i==$_REQUEST["yyyy"]?" selected":""; echo "<option value=\"{$i}\"{$selected}>{$i}</option>\n"; } echo "</select> 年 "; echo "<select name=\"mm\">"; for ($i = 1; $i < 13; $i++) { $selected=$i==$_REQUEST["mm"]?" selected":""; echo "<option value=\"{$i}\"{$selected}>{$i}</option>\n"; } echo "</select> 月 "; echo "<select name=\"dd\">"; for ($i = 1; $i < 32; $i++) { $selected=$i==$_REQUEST["dd"]?" selected":""; echo "<option value=\"{$i}\"{$selected}>{$i}</option>\n"; } echo "</select> 日 "; echo "<select name=\"hh\">"; for ($i = 0; $i < 24; $i++) { $selected=$i==$_REQUEST["hh"]?" selected":""; echo "<option value=\"{$i}\"{$selected}>{$i}</option>\n"; } echo "</select> 時 <br />"; $time = mktime(0, 0, $_POST['hh'], $_POST['dd'], $_POST['mm'], $_POST['yyyy']);

    • ベストアンサー
    • PHP

専門家に質問してみよう