2014-02-10 136 views
0

我有三條信息從我的數據庫中提取,年份,星期數(1-52)和星期幾(星期一,星期二,星期三)。我需要將它轉換爲日期。年,星期數和星期幾在php

我該怎麼去做這些在PHP?

+0

還有,你試過這麼遠嗎? – Rikesh

+0

非常接近重複:http://stackoverflow.com/questions/5763340/how-to-convert-week-number-and-year-into-unix-timestamp PHP strtotime()'會爲你做 – jtheman

回答

0

這會將您的$ day值轉換爲所需的日期格式。 試試這個

$yr="2011"; 
$week="01"; 
$day="Monday"; 
$day=date("D",strtotime($day)); 
echo date("Y-m-d", strtotime($yr."W".$week."D ".$day));; 

Demo

+0

I試過這個:<?php $ yr =「2014」; $ week =「01」; $ day =「mon」; $ day = date(「D」,strtotime($ day)); echo date(「Y-m-d」,strtotime($ yr。「W」。$ week。「D」。$ day));; ?> 和結果是一樣的:x這是錯誤的 – user2688737

+0

我也檢查過你的reference.it是錯誤的。如果找到soln會更新。 – krishna

+0

好的,非常感謝你 – user2688737

1

試試這個:

$yr="2014"; 
$week="01"; 
$day = "Mon"; 
echo date("Y-m-d", strtotime($yr."W".$week."D ".$day)); 

PHP小提琴:http://phpfiddle.org/main/code/nzg-ws6

+1

我試過這個:$ yr =「2014」; $ week =「01」; $ day ='mon'; echo date(「Y-m-d」,strtotime($ yr。「W」。$ week。「D」。$ day)); 它導致: 2014-01-03 這是錯誤的。因爲,2014-01-3是星期五! – user2688737

1

做了一點挖掘,它看起來像這一天將需要以數字格式使時間轉換正常工作。使用諸如「星期一」之類的字符串將不起作用。

$yr = "2014"; 
$week = "01"; 
$day = "1"; //Monday 
echo date("Y-m-d", strtotime($yr . "W" . $week . $day)); // "2014W011" 

請注意,我並沒有包括「d」前綴的一天,因爲這看起來是繼ISO8601

交換你的天數可以做到幾個方面: 你可以做一個數組週一至週日和使用數組鍵,或者也許更容易一些,你可以做這樣的事情:

$day date("N", strtotime("Monday")); // will echo 1 

因此,完整的代碼可能是這個樣子:

$yr = "2014"; 
$week = "01"; 
$day = date("N", strtotime("Monday")); // 
echo date("Y-m-d", strtotime($yr . "W" . $week . $day)); // "2014W011" 

下面是一個演示檢查:http://3v4l.org/EllgQ