にweeknumberからの変換以下の情報を考慮:PHPの日付関数:バック月
- 年:2012
- Weeknumber:4
- DAYNAME:火
どのように私はこれを変換することができますPHPの日付関数を使用して2012-01-12(YYYY-MM-DD)のような有効な日付に変更しますか?
DateTime
クラスはこれを行うことはできません
にweeknumberからの変換以下の情報を考慮:PHPの日付関数:バック月
どのように私はこれを変換することができますPHPの日付関数を使用して2012-01-12(YYYY-MM-DD)のような有効な日付に変更しますか?
DateTime
クラスはこれを行うことはできません
ありがとう、しかし機能strptime
することができます。配列戻り
$d = strptime('TUE 4 2012', '%a %W %Y');
var_dump($d);
:tm_year
は1900年以降の年数を含み、tm_month
が
array
'tm_sec' => int 0
'tm_min' => int 0
'tm_hour' => int 0
'tm_mday' => int 24
'tm_mon' => int 0
'tm_year' => int 112
'tm_wday' => int 2
'tm_yday' => int 23
'unparsed' => string '' (length=0)
。なお0系、1系ではありません。これは正しい2012-01-24を表しています。
素敵な答え..私はこの機能について知りませんでした。だから私はスクリプトを書いた:Dチェックアウト... –
この機能を使用:週はsunday
$year
から始まる場合$start_sunday
はtrue
あるべき
function get_date($year,$week,$day,$start_sunday=false){
$day_array = array('Mon'=>1,'Tue'=>2,'Wed'=>3,'Thu'=>4,'Fri'=>5,'Sat'=>6,'Sun'=>($start_sunday?0:7));
$month_array = array(31,($year%4==0?29:28),31,30,31,30,31,31,30,31,30,31);
$week *= 7;
$month = 1;
for($i=0;$i<count($month_array);$i++){
if($week-$month_array[$i]<=0){
break;
}
$week -= $month_array[$i];
$month++;
}
$format = "$year $month $week";
$date = date_create_from_format("Y m j",$format);
$date_num = date_format($date,"D");
$curr = $day_array[ucfirst(strtolower($day))]-$day_array[$date_num];
$got_date = strtotime("$curr ".($curr==1||$curr==-1?"day":"days"),strtotime(date_format($date,"Y-m-j")));
return $got_date;
}
年 $week
ある週番号 $day
は結婚短い曜日名の伊右衛門、火曜、です、....
この関数は、日付の形式を取得します与えられたフォーマット。
Enjoy............
-1私の目を傷つけるので。また、うるう年かどうかを計算するためのルールがあります。そして、仕事をするために組み込み関数を使用しないため。 – PeeHaa
ええ、私は100年目にもっと多くのルールを知っています:P –
を参照してください。[DateTimeオブジェクト](http://il.php.net/manual/en/book.datetime.php) –
キーボードの平手打ちあなたはビットにPHPのドキュメントを検索するだろうか? – noli
週番号は[ISO週](http://en.wikipedia.org/wiki/ISO_8601#Week_dates)ですか? – salathe