• ベストアンサー

日付の分解

お世話になります。 フォームから渡ってきた年月を年と月に分けるには どうしたらいいんでしょうか。 $ym = $_POST['ym']; $y = date("Y", mktime(0,0,0,1,1,$ym)); $m = date("m", mktime(0,0,0,1,$ym)); とやっているのですが、根本的に間違っていますでしょうか。

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

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

  • ベストアンサー
  • togino
  • ベストアンサー率75% (97/129)
回答No.1

すみません・・・ $_POST['ym'] の中身って具体的にどんなものなんでしょう? 2004年7月の場合 $ym = "200407" ? $ym = "0407" ? $ym = "47" ? $ym = "04/07" ? 仮に $ym = "04/07"; なら $yms = split("/", $ym); $y = $yms[0]; $m = $yms[1]; でもいいですし $ym = "200407" なら $y = (int)($ym / 100); $m = (int)($ym % 100); 送られてくる形式によると思いますが・・・

miya0726
質問者

お礼

試してみたところできました。 ありがとうございました!

miya0726
質問者

補足

お返事ありがとうございます。 2004-7 といった感じになります。

関連するQ&A

  • 日付 yymmdd

    今日の日付をたとえば2007年12月13日のときは071213と表記させたいと思い、 $today = mktime (0,0,0,date("m") ,date("d")+1,date("Y")); $TODAY = date("ymd",today); としたのですが上手くいきません。 出力は700101となってしまいます。 どうすればよいでしょうか?

    • ベストアンサー
    • PHP
  • PHPでPOSTした入力日の日付の+1日を取得したいです。

    PHPでPOSTした入力日の日付の+1日を取得したいです。 POSTされた値は以下です。 年 $y_pre = $_POST['year']; 月 $m_pre = $_POST['month']; 日 $d_pre = $_POST['day']; 以下はPOSTされた値の加工です。 日付加工  $s_ymd_pre = mktime(0,0,0,$m_pre,$d_pre,$y_pre); 日付加工  $ymd_pre = date("Y-m-d",$s_ymd_pre); ここから+1日のデータを取得したいです。 どうぞよろしくお願いいたします。

  • 1ヶ月後の日付を出力したい

    1ヶ月後の日付を出力したいのですが $tomorrow = mktime (0,0,0,date("m")+1,date("d"),date("Y")); phpマニュアルで上記のようなものを使って、 1970年1月1日からの通算秒を得ることが出来ましたが それとlocationtimeを使ってどうにか1ヶ月後の年月日を出せるようなのですが… やり方がどうしても分かりません。 いろいろ試したんですが、どつぼにハマって行くだけで…。 すみません、誰か助け舟を出して下さい お願いします

    • ベストアンサー
    • PHP
  • 日付をPHPに渡す

    下記のようなPHPとHTMLがあります。 HTMLに日付を指定できるフォームを設置しており、ここに入力されたデータを、 PHPの日付の部分に渡せるようにしたいと思っております。 <?PHP //言語設定、内部エンコーディングを指定する mb_language("japanese"); mb_internal_encoding("UTF-8"); //ライブラリ include('googleanalytics.class.php'); //アカウント $ga = new GoogleAnalytics('ID','PW'); $ga->setProfile('ga:GAID'); //日付指定 $today1 = mktime(0, 0, 0, date("m"), date("d")-30, date("Y")); $today2 = mktime(0, 0, 0, date("m"), date("d")-30, date("Y")); $g1 = date("Y-m-d", $today1); $g2 = date("Y-m-d", $today2); $ga->setDateRange($g2,$g1); //読み込み $report = $ga->getReport( array('dimensions'=>urlencode('ga:keyword'), 'metrics'=>urlencode('ga:visits,ga:pageviews'), 'sort'=>'-ga:pageviews' ) ); //表示 echo "<html><head><meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>"; echo "</head><body>"; echo "キーワード:セッション数:ページビュー数<BR>- - - - - <BR>"; foreach( $report as $d => $m ){ echo $d; foreach( $m as $a => $b ){ echo " : ".$b; } echo "<BR>"; } echo "</body></html>"; ?> <html> <br> ■ 期間 <form action="gaapisample.php" method="post"><label>日付(type="date1"):<input type="date" name="date"></label> <br> <form action="gaapisample.php" method="post"><label>日付(type="date2"):<input type="date" name="date"></label> <input type="submit" value="期間設定"></form> </html>

    • 締切済み
    • PHP
  • PHP-日付の表示形式

    いつもお世話になっています。 現在データ更新時にCSVを作成する部分があるのですが、 $Date = date("md", mktime(0, 0, 0, date("m"), date("d")+1, 0) ); としたところ実行日の翌日の日付(1月1日に実行した場合は1月2日)を反映させるようにしているのですが、これを年も含めて反映させるにはどのように変更を加えればいいでしょうか? 【現在】"0102"という形で表示 【希望】"20070102"というように年表示を加えたい 何卒よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 翌日の日付表示で土日を抜きたい

    質問させていただきます。 次回の会合部屋の予約可能日付を表示させるスクリプトを考えています。まず1日後の日付表示を考えているのですが、1日後が土曜日或いは日曜日の際には翌週の月曜日が表示されるようにしたいです。 現状は下記のとおり1日後の日付を表示する事しかできません。 <? $youbi = array("日","月","火","水","木","金","土"); $d=mktime(0,0,0,date("m"),date("d")+1,date("y")); print date("Y年m月d日",$d)." (".$youbi[date("w",$d)].")"; ?> 土曜日と日曜日は表示から省かれるようにする方法を教えてください。

    • ベストアンサー
    • PHP
  • 日付取得、計算及び表示コードが動作しません。

    日付取得、計算及び表示コードが動作しません。 下記のコードのどこが間違っているのか、どなたかお分かりですか? このコードでは、今日の日付をサーバから取得し、それから10日後の日付を計算して表示したいです。 $currentdate = .getdate(); $yyyy = $currentdate["year"]; $mm = $currentdate["mon"]; $dd = $currentdate["mday"]; $int_day = 10; $duedate = .date("y/m/d", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); echo "$duedate" また、上記のコードが動作するようになったとして、表示される日付は「2008/06/10」のようになるかと思いますが、これを「2008年06月10日」のように表示させる方法をご存知でしょうか? >$duedate = .date("y/m/d", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); 上記コードを下記のように変更してもだめです。 >$duedate = .date("y年m月d日", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); よろしくお願いします。

    • ベストアンサー
    • PHP
  • 明日以降の平日表示

    ちょっと頭がこんがらがってわからなくなってしまいました。 明日以降の平日の日付を取得・表示するスクリプトを考えております。 ========= <? $youbi = array("日","月","火","水","木","金","土"); $d=mktime(0,0,0,date("m"),date("d")+1,date("y")); if(date("w",$d)==6) $d=$d+60*60*24*2; if(date("w",$d)==0) $d=$d+60*60*24*2; $theday = date("Y年m月d日",$d)." (".$youbi[date("w",$d)].")"; print $theday; ?> <? $youbi = array("日","月","火","水","木","金","土"); $d=mktime(0,0,0,date("m"),date("d")+2,date("y")); if(date("w",$d)==6) $d=$d+60*60*24*2; if(date("w",$d)==0) $d=$d+60*60*24*2; $theday = date("Y年m月d日",$d)." (".$youbi[date("w",$d)].")"; print $theday; ?> <? $youbi = array("日","月","火","水","木","金","土"); $d=mktime(0,0,0,date("m"),date("d")+3,date("y")); if(date("w",$d)==6) $d=$d+60*60*24*2; if(date("w",$d)==0) $d=$d+60*60*24*2; $theday = date("Y年m月d日",$d)." (".$youbi[date("w",$d)].")"; print $theday; ?> <? $youbi = array("日","月","火","水","木","金","土"); $d=mktime(0,0,0,date("m"),date("d")+4,date("y")); if(date("w",$d)==6) $d=$d+60*60*24*2; if(date("w",$d)==0) $d=$d+60*60*24*2; $theday = date("Y年m月d日",$d)." (".$youbi[date("w",$d)].")"; print $theday; ?> この方法だとなぜか、 ============ 2007年08月27日 (月) 2007年08月28日 (火) 2007年08月27日 (月) 2007年08月28日 (火) ============ となります。 どこがおかしいのでしょうか?

    • ベストアンサー
    • PHP
  • 土日をカウントしない日付表示

    PHPで日付の表示方法で困っています。 今日から3日後の日付を表示するときに土日を含まないで表示させたいのです。本日12日ですので17日が表示されるようなPHPをご教授いただきたいです。 <?php echo date("m月d日",strtotime("+3 day"));?> だと単純に3日後ですし、 <?PHP $day = 60 * 60 * 24; $t=mktime(0,0,0,date("m"),date("d")+3,date("y")); if(date("w",$t)==6) $t += $day * 2; if(date("w",$t)==0) $t += $day ; echo date("m月d日",$t); ?> だとしても土日をカウントしているので、思うような結果に至っておりません。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • ACCESS 日付データ

    ACCESSの初心者です。よろしくお願いします。 フォーム上のテキストボックスに今日の日付から年月を取り出して6桁の数値を作りたいと思います。 例えば本日ですと「200602」の数値です。 「年」というテキストボックスにYear(Date())を、「月」というテキストボックスにMonth(Date())を取り出しました。[年] & [月]とすると「20062」となってしまいます。 「200602」とするにはどうすれば良いでしょうか。