Re: [請益] 請教高手要加3個月的程式寫法
如果可以掛 PHP 進來...XD
就可以這樣寫:
<?php
$dateBegin = '2013/10/31';
$dateBeginUnix = strtotime($dateBegin);
$dateNextUnix = strtotime('+1 day', $dateBeginUnix);
if (date('m', $dateBeginUnix) !== date('m', $dateNextUnix)) {
$theYear = date('Y', $dateBeginUnix);
$theMonth = '';
switch (date('n', $dateBeginUnix)) {
case '10':
$theMonth = '1';
$theYear += 1;
break;
case '11':
$theMonth = '2';
$theYear += 1;
break;
case '12':
$theMonth = '3';
$theYear += 1;
break;
default:
$theMonth = date('n', $dateBeginUnix) + 3;
}
$dateThreeMonUnix = strtotime("{$theYear}/{$theMonth}/01");
$dateThreeMonUnix = strtotime('+1 month', $dateThreeMonUnix) - 1;
} else {
$dateThreeMonUnix = strtotime('+3 months', $dateBeginUnix);
}
echo '<br />date threemonth: ' . date('Y-m-d', $dateThreeMonUnix);
※ 引述《ppking (老宅男)》之銘言:
: 如有一個起的變數是2013/04/01
: 則迄的值就為2013/07/01
: 但如遇到2013/03/31
: 則迄的值就要為2013/06/30
: 目前遇到困擾是31日及2月底日期的判斷
: 造成程式寫法要寫很多if寫法
: 不知各位高手有沒有比較簡單的寫法 就可寫出
: 謝謝
: IF MONTH(s_date) >= 10 THEN
: LET e_date=MDY(MONTH(s_date)-9,DAY(s_date),YEAR(s_date)+1)
: ELSE
: LET e_date=MDY(MONTH(s_date)+3,DAY(s_date),YEAR(s_date))
: END IF
: IF e_date IS NULL THEN
: IF MONTH(s_date) >= 9 THEN
: LET e_date=MDY(MONTH(s_date)-8,DAY(s_date),YEAR(s_date)+1)
: ELSE
: LET e_date=MDY(MONTH(s_date)+4,DAY(s_date),YEAR(s_date))
: END IF
: LET e_date = MDY(MONTH(e_date),1,YEAR(e_date)) - 1
: END IF
--
kiang
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.166.136
→
04/01 23:17, , 1F
04/01 23:17, 1F
→
04/01 23:18, , 2F
04/01 23:18, 2F
→
04/02 08:52, , 3F
04/02 08:52, 3F
討論串 (同標題文章)
Soft_Job 近期熱門文章
18
65
PTT職涯區 即時熱門文章