輸入:17-07-2017
輸出 - 提前
這裏>>第三個星期一GET週數和天從日期
感謝是我的代碼:
$datee = "2017-07-17";
$timestamp = strtotime($datee);
$day = date('l', $timestamp);
$week = date('w', $timestamp);
echo $day;
echo $week;
輸入:17-07-2017
輸出 - 提前
這裏>>第三個星期一GET週數和天從日期
感謝是我的代碼:
$datee = "2017-07-17";
$timestamp = strtotime($datee);
$day = date('l', $timestamp);
$week = date('w', $timestamp);
echo $day;
echo $week;
$input = new \DateTime('2017-07-17');
$firstDayOfMonth = new \DateTime($input->format('Y-m-01'));
$order = (int)(($input->format('j') - 1)/7) + 1;
function ordinal($number) {
$ends = array('th','st','nd','rd','th','th','th','th','th','th');
if ((($number % 100) >= 11) && (($number%100) <= 13))
return $number. 'th';
else
return $number. $ends[$number % 10];
}
echo ordinal($order).' '.$input->format('l');
您可以用代碼在鼓搗https://3v4l.org/dg5Xa
'W' 格式是一天的數字表示(星期日爲0,星期六爲6)。它不代表本月的周。爲了得到這個月的一週,你可以使用下面的函數
function week_number($date = 'today') {
return ceil(date('j', strtotime($date))/7);
}
所以,你的代碼應該是:
$datee = "2017-07-17";
$timestamp = strtotime($datee);
$day = date('l', $timestamp);
$week = week_number($datee);
echo $day;
echo $week;
我相信OP不是要在一個月中的那一週,而是要在一個月中發生。您的代碼在2017年7月17日星期一返回4,但僅爲本月的第3個星期一... –
很簡單的答案已經存在了
In PHP, how to know how many mondays have passed in this month uptil today?
$now=time();
if (($dow = date('w', $now)) == 0) $dow = 7;
$begin = $now - (86400 * ($dow-1));
echo "Monday: ".ceil(date('d', $begin)/7)."<br/>";
使用'{}'工具欄按鈕,以良好的格式化代碼。清楚地表達出問題所在。你會得到什麼結果和你的期望。 – axiac
當我輸入任何日期,我應該得到在一個月和一天的週數,例如,如果我鍵入17-07-2017我應該得到輸出爲第三個星期一與上述代碼我得到錯誤的答案作爲星期一和1 – pallavi