0から始まる文字列を作りたい

このQ&Aのポイント
  • 個人でサイトを作ろうとしているのですが、掲題の件がどうしても出来ず困っています。
  • 上記の処理で今年の日付を09年08月という表示をPHPを使って行いたいのですが、9年08月と、どうしても頭の"0"が表示されないのです。
  • そもそも0から始まる数字を表示することは、PHPでは出来ないのでしょうか?
回答を見る
  • ベストアンサー

0から始まる文字列を作りたい

お世話になります。 個人でサイトを作ろうとしているのですが、 掲題の件がどうしても出来ず困っています。 具体的には、 ------------------------------- $year = '2009'; $month = '08'; $year2 = substr (($year),3,2); echo $year2 . "年". $month . "月"; ------------------------------- 上記の処理で今年の日付を 09年08月という表示をPHPを使って行いたいのですが、 9年08月と、どうしても頭の"0"が表示されないのです。 strvalなどは試したみたのですが、 上手くいかず・・・。 そもそも0から始まる数字を表示することは、 PHPでは出来ないのでしょうか? 宜しくおねがいします。

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

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

たんなる勘違いだと思いますが・・・ $year2 = substr ($year,2,2);

参考URL:
http://www.php.net/manual/ja/function.substr.php
yuko8320
質問者

お礼

まさにおっしゃる通りです。。。 なんとなく0が頭だとPHPが勝手に処理しちゃうと 思い込んでいました。 お騒がせしました!

その他の回答 (2)

回答No.2

先ほどの内容はご希望の内容と違っていたならば下記の内容で如何? strftime("%Y/%m/%d", $date);

yuko8320
質問者

お礼

dateを使えたらよかったんですが、 前後の処理の関係で使えず。。 > strftime("%Y/%m/%d", $date); こういうやり方もあるんですね! 勉強になります。。 ありがとうございました!

回答No.1

違っていたらごめんなさい。下記では如何ですか? http://php.s3.to/man/function.date.html

関連するQ&A

  • 文字列の表示について

    文字列を表示する際に、いままで、 <?= strVal("○○○○○○") ?> のような形でやっていましたが、 Linux+php5に変更したら、phpとして処理がされず、 そのままHTML上に表示されてしまいます。 (前は、Windows+Php4) たぶん、<?phpとphpをつけないからいけないんだと 思っているのですが、この場合、どのようにすればよいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • 日付データを比較して出力したい!

    いつもお世話になります。 2つの日付を比較して、月の差を求めて、 for文でその月差分を1つめの変数に出力したいのですが、 うまくいきません。XAMPP環境です。 自分でも調べてみますが、お願いします。 ------------------------------ <?php //2007年9月と2007年12月を比較 $date1="2007-09"; $date2="2007-12"; //差分を求める list($year1,$month1) = split('[/.-]', $date1); list($year2,$month2) = split('[/.-]', $date2); $year=$year2-$year1; $month=$month2+1-$month1; $total_month=$year*12+$month; //for文で出力 for($k=0;$k<$total_month;$k++){ echo $k."回目のループ。<BR>"; echo $k+$date1; } ?> ----------------------------------- --------実行結果-------- 0回目のループ。 2008 1回目のループ。 2009 2回目のループ。 2010 3回目のループ。 2011 ------------------------ となってしまいます。求めたい処理は --------理想結果-------- 0回目のループ。 2007/09 1回目のループ。 2007/10 2回目のループ。 2007/11 3回目のループ。 2007/12 ------------------------ です。よろしくお願いしますm(_ _)M

    • ベストアンサー
    • PHP
  • php 全角文字で改行される

    宜しくお願いします。 phpで作ったカレンダーで、 tableのtdの中に、 <?php print $year ; ?>年<?php print $month ; ?>月 を入れて、2009年12月8日と表示しているのですが、 IE6とIE7だけ、全角文字部分で改行されてしまいます。 2009 月 8 日 このような感じです。 全角英字も大丈夫でした。 だめなのは、数字だけです。 どうゆうことでしょうか? どなたか、何卒お願い致します。

    • ベストアンサー
    • PHP
  • if文の条件について

    2008年の09月30日までは「テスト」と表示し、それ以降はなにも表示しないようにしようと思い、以下のように作成してみました。 ---------------------------------------------------------- <?php $year = date('Y'); $month = date('m'); $day = date('d'); if($year == 2008 and $month == 09 and $day <= 30){ echo 'テスト';} ?> -------------------------------------------------------------- けれど、なにも表示されませんでした。 ためしに else{ echo 'hoge';} をつけ加えてみると、「hoge」と表示されました。 どうして「テスト」と表示されず、elseの「hoge」と表示されてしまうのでしょうか? ご教授のほど、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • カレンダーに値を表示する

    度々お世話になっています。いつも質問ばかりですみません。 カレンダーにその日付にあった値を表示したいと思っています。 テーブル:acclog フィールド:hidukeには2007-01-01などの日付、$urlには数字が入ってます。下記コードの場合、カレンダーが31個(1月分)できて、1個目全ての日に2007-01-01の数、2個目に2007-01-02の数がでます。素人ながら、for($day=1; checkdate($month,$day,$year);$day++){ あたりが原因かと思い、消す・ずらすなどやってみましたが、ダメでした。お手数ですがよろしくご教授下さい。 $y="2007"; $sql = "select * from acclog where hiduke like '$y-01%'"; $result = mysql_query($sql); ( $result, MYSQL_ASSOC ) ) while($rec = mysql_fetch_array( $result, MYSQL_ASSOC )) { foreach ($rec as $k=>$v) { $rec[$k] = mb_convert_encoding($v,'SJIS','EUC-JP'); } $month=substr($rec[hiduke],5,2); $year=substr($rec[hiduke],0,4); $day=substr($rec[hiduke],8,2); $first_day = mktime( 0,0,0,$month,1,$year);//1日(月初)のタイムスタンプから「曜日」を取得 $first_weekday = date("w",$first_day); echo "<table width='450' border='1'>"; ~一部省略 月などの曜日 echo "<tr>"; $weekday = 0; //1日の曜日まで空欄必要 while ($weekday!=$first_weekday) { echo "<td>&nbsp;</td>"; $weekday++; } for($day=1; checkdate($month,$day,$year); $day++){ if($weekday>6){ $weekday=0; echo "</tr>\n<tr>"; } echo "<td align=center>${day}<br>"; echo "$rec[$url]<br>"; echo "</td>"; $weekday++; //曜日をすすめる } } while($weekday<7){ //最後の空欄作成 echo "<td>&nbsp;</td>"; $weekday++; } echo "</table>";

    • 締切済み
    • PHP
  • ファイルメーカーPRO 5を使ってます 日付を入力してDayNameJ

    ファイルメーカーPRO 5を使ってます。日付を入力してDayNameJ(日付)で曜日を表示させてます。 所が、日付を変更しても曜日が変わりませんどうしたら変更出来ますか? 後、毎月15日を堺に支払月を変更したいと思って関数を使って計算式を入れているのですが計算が出来ません。 If(Day(日付) <= 15,Date(Year(日付),Month(日付),15),Date(Year(日付),Month(日付)+1,15))と入れてます。 たとえば、日付に2009/06/17と入力すると 支払月が0182/05/07となってしまいます。 どうしてでしょうか? 日付、支払月は日付フィールドになってます。 もう一つすみません。 日付を年、月、日のそれぞれのフィールドに分割したくてそれぞれに  年、Year(日付) 月、month(日付) 日、day(日付)と計算式をいれたのですが、日付フィールドにして、日付書式のカスタムでそれぞれ年、月、日を表示するようにしたら 年、0006 月、01 日、17になっていまいます。日付フィールドをやめて数字フィールドにすると年、2009 月、06 日、17とちゃんと出てきます。 日付フィールドではダメって事でしょうか? 計算式をいれている所は日付をかえても計算し直してくれません。どうしたら良いのでしょうか? いろんな質問をしてすみませんが宜しくお願いします。

  • 日付の比較について

    最近PHPの勉強を始めた初心者です。 はじめて質問させていただきます。 2005-1-1から2020-12-31の間で入力した日付の曜日を表示するプログラムを作成しています。 2005-1-1から2020-12-31の間以外ならエラー表示するようにしたいのですが、 入力した日付との比較がうまくいかず、思うように動きません。 どのように直せばいいのかを教えていただけないでしょうか?よろしくお願いします。 <?php $year=$_POST["year"]; $month=$_POST["month"]; $day=$_POST["day"]; $date_str="$year-$month-$day"; $date_time=strtotime($date_str); $firstdate_str="2005-1-1"; $firstdate_time=strtotime($firstdate_str); $lastdate_str="2020-12-31"; $lastdate_time=strtotime($lastdate_str); if ($date_time < $firstdate_time || $date_time> $lastdate_time)  {  echo "Please enter a date between 1/1/2005 and 12/31/2020.";  } else  {  $finddate=date('l', mktime(0,0,0,$month, $day, $year));  echo "The day entered in on $finddate";  } ?>

    • 締切済み
    • PHP
  • 先月の日数を求める関数にうるう年を適応するかどうか

    お世話になります。 今年2月はうるう年ではありませんが下記のPHP関数において、 ■指定した月の日数 <?php echo date('t', strtotime('-1 month')); ?> これは、表示させると先月((month-1)月)の日数「31」を吐き出すのですが、 この関数にはうるう年処理は設定されているのでしょうか? もしPHP5にこの処理がなければ自分でうるう年処理を作成しようとしております。 ご返事お待ちしております。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PATH_INFOで「?」を含む文字列を受け取る方法

    環境変数 PATH_INFOで「?」(クエスチョンマーク)を含む文字列を受け取りたいです。 例えば「hoge.php/test?abc」で $g = $_SERVER['PATH_INFO']; $g = substr($g, 1); echo $g; とすると「abc」と表示されてしまいます。 この際「test?abc」と表示させるには、どのようにすれば良いでしょうか。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • VBの日付関数から必要な文字列を抜き出したい

    VBscriptを使い日付関数で取得した値の中から一部の文字列を抜き出したいのですがうまくいかないのでどなたか間違いの箇所を指摘していただけないでしょうか? ’先月を返します。 Dim b Dim yyyymm b=DateAdd("M",-1,Now) yyyymm=Year(b)*100+Month(b) ’先月の表示を変更します。 Dim lastmonth Dim strVal strVal = "yyyymm" lastmonth = Right(strVal, 4) Dim oLogQuery Dim strQuery Set oLogQuery = CreateObject("MSUtil.LogQuery") ' クエリ テキストを作成します。 strQuery = "SELECT cs-uri-stem,COUNT(*) AS view INTO View.csv FROM C:\test1\ex"&★lastmonth★&".log" strQuery = strQuery & " WHERE cs-uri-stem IN('/Default.htm';'/images/address.gif') GROUP BY cs-uri-stem ORDER BY COUNT(*) DESC" ' クエリを実行します。 oLogQuery.ExecuteBatch strQuery ※先月を返しますというところで2008年2月に実行したら200801という表示になると思います。(もし、1月に実行したら200712になりますよね?)200801の右から4文字を取り出し0801という文字列を作り★印の間に入れたいのですがうまくいきません。 また3か月分(四半期?)もやりたいのですがヒントがあったら教えて下さい。

専門家に質問してみよう