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

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

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

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

Q&A

解決済

2回答

1066閲覧

php 日付関数について

moriyama_tosimi

総合スコア22

PHP

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

0グッド

0クリップ

投稿2020/11/10 17:59

お伺いします。
php の日付、時刻 関数の『date』についてなのですが、
dateのフォーマット文字【W】「1年で何週目か?」の、書籍方法がわかりません。
ただ単に、『echo date("W");』を、記入してデバックすると、記入した日時に対して答えが返ってきます。
私が知りたいのは、過去の日付で何週目か調べる方法が、わかりません。
試したコード

php

1<?php 2 echo date("W","2000/04/10"); // 日付のダブルクォーテーションとシングルクォーテーション 3 echo date("W":"2000/04/10"); // :や[]などで囲ってみたり 4コード

色々、思いつく物で、試しましたが、上手くいきません。
そもそも、"W"(大文字)は、現在日時にしか、機能しないのでしょうか?

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/11/10 21:41

試したこと、調べたこと、を面倒でも質問文中に書いて欲しいところ。
guest

回答2

0

スマホからの回答なので細かく書きませんが、
素のPHPで日付や時刻を扱うのに
DateTimeクラスを使って管理すると便利です。
日付(や時刻やタイムスタンプ)を文字列として出力する際には
DateTime::format()
https://www.php.net/manual/ja/datetime.format.php
を使います。

投稿2020/11/10 21:39

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2020/11/10 22:09

日付の足し算はDateTime::add()メソッドで、癖はありますが使いこなせた方が楽なので、レッツチャレンジ。
guest

0

ベストアンサー

過去日付は(文字列でなく)タイムスタンプにして与えましょう。
---追記---
たとえばこんなかんじで

php

1echo date("W", strtotime("2000/04/10"));

---追記---
そういうはなしなら

php

1<?php 2function asita($str) { 3 $t = strtotime($str); 4 return mktime(0,0,0,date("m",$t),date("d",$t) + 1,date("Y",$t)); 5} 6 7echo date("W", strtotime("2020/11/07")) . " 土\n"; 8echo date("W", strtotime("2020/11/08")) . " 日\n"; 9echo date("W", strtotime("2020/11/09")) . " 月\n"; 10echo date("W", strtotime("2020/11/10")) . " 火\n"; 11echo "\n"; 12echo date("W", asita("2020/11/07")) . " 土\n"; 13echo date("W", asita("2020/11/08")) . " 日\n"; 14echo date("W", asita("2020/11/09")) . " 月\n"; 15echo date("W", asita("2020/11/10")) . " 火\n"; 16?>

ただし、大晦日には気を付けてください。

投稿2020/11/10 21:22

編集2020/11/10 23:49
takasima20

総合スコア7464

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

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

moriyama_tosimi

2020/11/10 21:59

ありがとうございました。 助かりました。 ちなみに、月曜日の計算を日曜日の計算は、無理でしょうか? 出来なければ、かまいません。 プログラムを日曜日から月曜日に書き換えたいと、思います。
takasima20

2020/11/10 23:51

やっつけ仕事で回答しましたが、今後を考えると m6u さんのも参考にされてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問