 |
อยากทราบวิธีหาว่าอยู่สัปดาห์ที่เท่าไหร่ โดยกำหนดวันเริ่มต้นและวันที่ เองอ่าครับ |
|
 |
|
|
 |
 |
|
Code (PHP)
echo $week = date("W", strtotime('2014-03-28')); //13
|
 |
 |
 |
 |
Date :
2014-03-28 17:14:30 |
By :
Manussawin |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อันนั้นมันของปี ไม่ใช่หรอครับ คือผมอยากกำหนดวันเริ่มนับเองอ่าครับ
|
 |
 |
 |
 |
Date :
2014-03-28 22:34:09 |
By :
dreamt256 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ได้แล้วนะครับ ใช้โค้ดนี้ครับ [โจทย์นี้ช่างยากเหลือ] - -
Code (PHP)
function numWeek($strStartDate,$strEndDate){//2012-02-01
$intMonday = 0;
$intOther = 0;
$intRound = array();
$i = 0;
while (strtotime($strStartDate) <= strtotime($strEndDate)) {
$DayOfWeek = date("w", strtotime($strStartDate));
if($DayOfWeek == 1) // 1 = monday
{
$intMonday++;
$intOther = 0;
$intRound[$i] = 1;
}else{
$intOther++;
}
$strStartDate = date ("Y-m-d", strtotime("+1 day", strtotime($strStartDate)));
}
if($intOther > "0" && $intRound[0] =! "1"){
$intMonday++;
}
$i++;
return $intMonday;
}
|
ประวัติการแก้ไข 2014-03-29 09:44:55
 |
 |
 |
 |
Date :
2014-03-29 01:40:52 |
By :
dreamt256 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ความถูกต้อง/สิ่งที่เราต้องการ มันคือความถูกต้อง แต่มันไม่สามารถครอบคลุมในทุกฯ กรณี ได้ครับ
คำแนะนำของคุณ Manussawin น่าจะถูกต้องมากที่สุดครับ (ในสภาพแวดล้อมที่เท่าเท่ากัน)
Code (PHP)
echo $week = date("W", strtotime('2014-03-28')); //13
|
 |
 |
 |
 |
Date :
2014-03-30 12:29:33 |
By :
love9713 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมยกคำถามง่ายง่ายครับ เพื่อประกอบความเข้าใจ "ในหนึ่งปีมีทั้งหมดกี่วัน"?
--- พระเจ้ายังอุทานว่า "สิ่งนี้ฉันไม่ได้สร้างขึ้นมา"
แต่ถ้าถามว่า "ปีนี้มีจำนวนวันทั้งหมดกี่วัน"
--- มนุษย์ยังพอให้คำตอบได้ (น่าจะถูกต้อง)
|
 |
 |
 |
 |
Date :
2014-03-30 12:37:05 |
By :
love9713 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมเล่านิทานให้ฟังอีกเรื่องหนึ่งครับ
กระต่าย : วันแรกของปี คือวันที่ 1-xx-xxxx หมายความว่า xx, xxxx คืออะไรก็ได้ แต่ไม่ใช่ทั้งหมด
เต่า : วันแรกของปี คือวันที่ 2-xx-xxxxx มันให้ความหมายว่า วันแรกของฉันมันก็แตกต่างกับเธอแล้ว
แล้วเราจะนับวันอย่างไร?ครับ
แล้วเราจะนับสัปดาห์อย่างไร?ครับ
แล้วเราจะนับปีอย่างไร?ครับ
|
 |
 |
 |
 |
Date :
2014-03-30 12:48:20 |
By :
love9713 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
กลับมาอ่านแล้วครับ เอ่อ คือว่า คุณต้องการจะสื่ออะไรหรอครับ ???
|
 |
 |
 |
 |
Date :
2014-03-30 17:37:47 |
By :
dreamt256 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คุณลองกลับไปอ่าน #NO 4 - #NO 8 สมมุติว่าคุณเข้าใจ ผมจะดีใจมากกว่าที่คุณกลับมาอ่านมันอีกครั้งหนึ่ง ครับ
|
 |
 |
 |
 |
Date :
2014-03-30 19:12:22 |
By :
love9713 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมเอามาจาก Internet (www.SqlCentral.com) ผมเพียงแค่เก็บรวบรวมเอาไว้ (กันลืม)
Code (SQL)
SET DATEFIRST 7 -- Sunday
SELECT @@DATEFIRST
SET DATEFIRST 1 -- Monday
DECLARE @startDate DATE = '2014-01-01', @endDate DATE = '2014-12-31';
--CROSS JOIN
;WITH t1(N) AS (SELECT N FROM (VALUES(1),(1)) TableValueExpression(N)), -- 2 Rows
t2(N) AS (SELECT 1 FROM t1 x, t1 y), -- 4 Rows (2*2)
t3(N) AS (SELECT 1 FROM t2 x, t2 y), -- 16 Rows (4*4)
t4(N) AS (SELECT 1 FROM t3 x, t3 y), -- 256 Rows (16*16)
t5(N) AS (SELECT 1 FROM t4 x, t4 y), -- 65,536 Rows (256*256)
tally(N) AS (SELECT 0 UNION ALL
SELECT TOP (DATEDIFF(WEEK, @startDate, @endDate)) -- Limit the result-set straight up front
ROW_NUMBER() OVER(ORDER BY (SELECT NULL))
FROM t5 x, t5 y) -- 4,294,967,296 Rows (65,536*65,536)
SELECT N + 1 AS WeekNo,
CASE WHEN DATEADD(WEEK, DATEDIFF(WEEK, '1900-01-02', DATEADD(WEEK, N, @startDate)), '1900-01-02') < @startDate
THEN @startDate
ELSE DATEADD(WEEK, DATEDIFF(WEEK, '1900-01-02', DATEADD(WEEK,N , @startDate)), '1900-01-02') END AS weekStart,
CASE WHEN DATEADD(WEEK, DATEDIFF(WEEK, '1900-01-08', DATEADD(WEEK, N + 1, @startDate)), '1900-01-08') > @endDate
THEN @endDate
ELSE DATEADD(WEEK, DATEDIFF(WEEK, '1900-01-08', DATEADD(WEEK, N + 1, @startDate)), '1900-01-08') END AS weekEnd
FROM tally;
|
 |
 |
 |
 |
Date :
2014-03-30 19:32:55 |
By :
love9713 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตัวอย่าง #NO 11

...
...
...
สัปดาห์ที่ 52 -53 (ประมาณ)
|
 |
 |
 |
 |
Date :
2014-03-30 19:36:17 |
By :
love9713 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ีมีมาก สุขมาก จน ทุกข์มาก
ผมมี เศษเงิน เหลืออยู่ 5 ล้านบาท (ห้าล้านบาท) 2014-03-30
ผมควรจะทำอะไร?
|
 |
 |
 |
 |
Date :
2014-03-30 21:56:29 |
By :
love9713 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอ่อ ขอบคุณ คุณมากเลยนะครับ ตอนนี้ผมใช้สคริปผมอยู่ก็ถือว่าโอเคแล้วนะครับ 
|
 |
 |
 |
 |
Date :
2014-03-30 22:14:58 |
By :
dreamt256 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อันไหนที่มีผ่านมามาตอบ ความน่าตอบจะลดลง 80%
Code (PHP)
$start = new DateTime('2014-03-01');
$end = new DateTime('2014-04-06');
$week = intval($end->format('W')) - intval($start->format('W'));
|
 |
 |
 |
 |
Date :
2014-03-31 09:21:49 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|