ส่งค่าหลายๆๆตัว ส่งค่าออกไปและคะแต่ค่าที่ส่งไปมันเป็นแค่ค่าเดียว(ตามรูปคะ)ซึ่งที่จริงมีค่าต่างกัน
ไม่รู้ใช้ cookie หรือเปล่านะ
แต่ถ้าจะส่งค่าที่ query ทั้งหมดทำไมไม่ส่งแค่ key ไปแล้วไป query ใหม่ล่ะ
งง ทำไม boy1999 ถึงใช้ คะ ล่ะ ผมสับสน
Date :
2010-02-02 09:49:13
By :
tungman
ก็เป็นผู้หญิงไงคะไม่เห็นแปลกเลยคะ
ส่งไปและคิวรี่ใหม่ ใหม่และส่งค่าเข้าไปฟังก์ชั่นยังไงคะ
เป็นไปได้ยกตัวอย่างให้สักนิดจะได้ไหม
Date :
2010-02-02 10:01:14
By :
jyp
ครับๆ คือเห็นชื่อกับหางเสียงมันขัดกันเลยสับสน ตอนนี้ก็สับสนๆๆ อยู่
ตัวอย่างอยู่ด้านล่างก็อบจากเว็บเมืองนอกแบบไม่ให้ credit ผิดถูกอย่างไรไปด่าฝรั่งคนเขียนเอา
Code (ASP)
<%option explicit
'create the function:
function UseArray(pAr)
dim i
response.write "The array contains the following elements:<BR>"
for i = 0 to ubound(pAr)
response.write pAr(i) & "<BR>"
next
UseArray = join(pAr,"; ")
end function
'create the array
dim ar, s
ar=array(1,2,3)
'pass it to the function:
s = UseArray(ar)
response.write "<BR>The function returned this string:<BR>"
response.write s
%>
Date :
2010-02-02 10:16:13
By :
tungman
โอ่ แหมหามาเป็นตัวอย่างให้นี่ยังว่าอีก....นะ
คือตอนนี้คะส่งค่าได้แล้วแต่ๆๆติดที่ว่า
function calcAge
พอรันค่าออกมาเป็นแบบนี้คะ
Code (VB.NET)
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="thgreen">
<tr>
<td align="center"><h1>รายงาน อายุการทำงานของอุปกรณ์แต่ละชิ้น </h1></td>
</tr>
<tr>
<td background="Templates/img/line2.jpg" style="background-repeat:repeat-x"><img src="Templates/img/line2.jpg"></td>
</tr>
<tr>
<td align="center"> </td>
</tr>
<tr>
<td><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="16%"><h3 align="center">หน่วยงาน</h3></td>
<td width="22%"><h3 align="center">หมวดอุปกรณ์</h3></td>
<td width="22%"><h3 align="center">ประเภทอุปกรณ์</h3></td>
<td width="29%"><h3 align="center">อายุอุปกรณ์</h3></td>
<td width="11%"><h3 align="center">สถานที่ทำงาน</h3></td>
</tr>
<tr>
<%
while not rs1.eof and rowcount<rs1.pagesize
if bg="tdblue-2" then
bg="tdblue-1"
else
bg="tdblue-2"
end if
a= Mid(rs1("DeviceReceive_date"),1,10)
'b= Mid(rs1("DeviceReceive_date"),4,1)
myTest = rs1("DeviceReceive_date")
myTest = Split(myTest,"/")
if(len(myTest(1))=1)then
x = "0"+myTest(1)
else
x= myTest(1)
end if
c=Mid(rs1("DeviceReceive_date"),7,4)
%>
<script language="JavaScript">
var age = calcAge(<%=day(a)%>, <%=x%>, <%=c%>);
</script>
<td><div align="center"><%=rs1("div_name")%></div></td>
<td><div align="center"><%=rs1("Cd_Name")%></div></td>
<td class="h3" align="center"><%=rs1("Name_Device")%></td>
<td><div align="center"><script language="javascript">
document.write('อายุ ' + age.year + ' ปี ' + age.month + ' เดือน ' + age.day + ' วัน');
</script></div></td>
<td><div align="center"><%=rs1("Working")%></div></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<%
rowcount=rowcount+1
rs1.movenext
wend
%>
</table></td>
</tr>
</table>
Date :
2010-02-02 13:13:40
By :
jyp
กลับมาตอบให้ผู้หญิงชื่อ boy
ไม่ต้องใช้ javascript ก็ได้มั้งใช้ function ใน vbscript นั้นแหละ
ลอง DateDiff ดู
Date :
2010-02-02 14:44:51
By :
tungman
ลองเอาไปใช้ดู แต่ต้องป้อนเป็น ค.ศ. นะ
Code (ASP)
<%
Function CalAge(MyDay, MyMonth, MyYear)
ThisDay = Day(Now()) & "/" & Month(Now()) & "/" & Year(Now())
CalAge = DateDiff("yyyy", MyDay & "/" & MyMonth & "/" & MyYear, ThisDay) - 1 & " Years " & DateDiff("m", MyDay & "/" & MyMonth & "/" & Year(Now()) - 1, ThisDay) - 1 & " Months " & DateDiff("d", MyDay & "/" & Month(Now) -1 & "/" & Year(Now()), ThisDay) - 1 & " Days"
End Function
Response.Write CalAge(25, 12, 2008)
%>
Date :
2010-02-02 15:08:58
By :
tungman
ขอบคุณมากมายคะ เอ้ สงสัยต้องซื้อขนมส่งไปรษณีย์ไปให้เพื่อเป็นการ
ขอบคุณดีไหมน้อ.....
Date :
2010-02-02 16:34:08
By :
jpy
ยังติดใจเรื่องชื่อกับหางเสียงอยู่ ไม่เป็นไร ไม่ต้องต้องหรอก เกรงใจ
ตกลงชื่อ boy จริงๆ อะ น่ากลัวนะ
Date :
2010-02-02 16:45:07
By :
tungman
เป็นผู้หญิงจริงๆคะไม่ได้เป็นผู้ชายตุ๊ด หรือแอบจิตอะไรทั้งนั้นญ.ไทยแท้ 1000000000000% ไม่เชื่อนะเข้ามาดูได้เลย
เพราะบอกไปไงก็ไม่เชื่ออีกคะ
http://keaw-t.hi5.com
เอ่อดูแล้วก็อย่าติละกันนะคะว่าไม่สวย 555+
Date :
2010-02-04 09:51:39
By :
jyp
เกิดปัญหานิดหน่อยคะ จาก code asp
จาก ผู้ตอบ No. 6
Code (VB.NET)
<%
Function CalAge(MyDay, MyMonth, MyYear)
ThisDay = Day(Now()) & "/" & Month(Now()) & "/" & Year(Now())
CalAge = DateDiff("yyyy", MyDay & "/" & MyMonth & "/" & MyYear, ThisDay) - 1 & " Years " & DateDiff("m", MyDay & "/" & MyMonth & "/" & Year(Now()) - 1, ThisDay) - 1 & " Months " & DateDiff("d", MyDay & "/" & Month(Now) -1 & "/" & Year(Now()), ThisDay) - 1 & " Days"
End Function
Response.Write CalAge(25, 12, 2008)
%>
มันจะมีปัญหาอยู่ว่า ถ้าเดือนนี้
เป็นเดือน 03 ตรง DateDiff("d", MyDay & "/" & Month(Now) -1 & "/" & Year(Now()), ThisDay) - 1 & " Days"
จะเกิด Error ขึ้นเพราะ เดือน ที่ 02 มี แค่ 28 วัน เท่านั้นแต่ค่าที่ส่งมา เป็น 31/เดือน03-1=02/2010
มันหาค่าไม่ได้ ช่วยหน่อยคะจะดักอย่างไร
Date :
2010-03-02 10:51:40
By :
jyp
ใครอะ ผู้ตอบ No.6
Code (ASP)
<%
Function CalAge(MyDay, MyMonth, MyYear)
MyDate = MyDay & "/" & MyMonth & "/" & MyYear
ThisDate = Day(Date()) & "/" & Month(Date()) & "/" & Year(Date())
If DateDiff("d", MyDate, ThisDate) > 0 Then
AgeDay = DateDiff("d", MyDate, ThisDate)
CalYear = 0
CalMonth = 0
CalDay = 0
LeapYear = 0
For i = 0 To Year(Date()) - MyYear
If AgeDay < 365 Then
Exit For
End If
'เกิดอะไรขึ้นกับ Leap year เนี่ย
'If ((MyYear + i) Mod 4 = 0 and (MyYear + i) Mod 100 <> 0) or (MyYear + i) mod 400 = 0 Then
'AgeDay = AgeDay - 366
'Else
AgeDay = AgeDay - 365
'End If
'เกิดอะไรขึ้นกับ Leap year เนี่ย
If (MyYear + i) Mod 4 = 2 Then
LeapYear = LeapYear + 1
End If
CalYear = CalYear + 1
Next
'เกิดอะไรขึ้นกับ Leap year เนี่ย
AgeDay = AgeDay - LeapYear
If AgeDay < LastDay(Month(Date()), Year(Date())) Then
CalDay = AgeDay
Else
If MyMonth < Month(Date()) Then
LoopMonth = Month(Date()) - MyMonth
aYear = Year(Date())
Else
LoopMonth = 12 + Month(Date()) - MyMonth
aYear = Year(Date()) - 1
End If
For i = 0 To LoopMonth
If AgeDay < LastDay(Month(Date()) - 1, aYear) Then
Exit For
End If
aMount = i + MyMonth
If aMount > 12 Then
aMount = aMount - 12
aYear = aYear + 1
End If
AgeDay = AgeDay - LastDay(aMount, aYear)
CalMonth = CalMonth + 1
Next
CalDay = AgeDay
End If
CalAge = CalYear & " Years " & CalMonth & " Months " & CalDay & " Days"
Else
CalAge = "0 Years 0 Months 0 Days"
End If
End Function
Function LastDay(MyMonth, MyYear)
Select case MyMonth
Case 1, 3, 5, 7, 8, 10, 12
LastDay = 31
Case 4, 6, 9, 11
LastDay = 30
Case 2
'เกิดอะไรขึ้นกับ Leap year เนี่ย
'If (MyYear Mod 4 = 0 and MyYear Mod 100 <> 0) or MyYear mod 400 = 0 Then
'LastDay = 29
'Else
LastDay = 28
'End If
End Select
End Function
Response.Write CalAge(2, 3, 2000)
'ถ้าวันนี้วันที่ 2/3/2010 จะแสดงผลเท่ากับ
'10 Years 0 Months 0 Days
%>
รู้สึกว่า function datediff มันจะไม่คิด leap year นะ หายไปตั้งหลายวัน แต่แก้ให้แล้ว
Date :
2010-03-02 18:14:50
By :
tungman
DATEDIFF นับรวมวันที่ 29 ของปีอธิกสุรทินนะคะ ยืนยัน
จากความต้องการที่ว่ามา คิดว่าการเอา code มาแปะที่ ASP น่าจะช้า
เพราะกระโดดไปมา เลยเขียน SCALAR-VALUE FUNCTION ดังนี้ค่ะ
Code (C#)
/****** Object: UserDefinedFunction [dbo].[DATE_SERIAL] Script Date: 03/02/2010 22:38:25 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <PROUND>
-- Create date: <2 มีค 2553>
-- Description: <Convert datetime with exactly parameter>
-- =============================================
CREATE FUNCTION [dbo].[DATE_SERIAL](@VAR_YEARPART INT ,@VAR_MONTHPART INT ,@VAR_DAYPART INT)
RETURNS DATETIME
AS
BEGIN
DECLARE
@TEMP_STR VARCHAR(20) ,
@RET_DATE DATETIME;
-- BEGIN CALCULATION
SET @TEMP_STR = CONVERT(VARCHAR ,@VAR_DAYPART) + '-'
+ CONVERT(VARCHAR ,@VAR_MONTHPART) + '-'
+ CONVERT(VARCHAR ,@VAR_YEARPART) ;
SET @RET_DATE = CONVERT(DATETIME ,@TEMP_STR ,105) ;
RETURN @RET_DATE ;
END
GO
**********************************
-- =============================================
-- Author: PROUND
-- Create date: 02-มีค-2553
-- Description: DURATION_CALCULATION
-- =============================================
-- @VAR_DATE_TIME < วดป ปัจจุบัน
CREATE FUNCTION [dbo].[DURATION_CALCULATION](@VAR_DATE_TIME DATETIME)
RETURNS NVARCHAR(50)
AS
BEGIN
DECLARE
@DAY_INTERVAL INT,
@MONTH_INTERVAL INT,
@YEAR_INTERVAL INT,
@TEMP INT,
@SLIDE_BEGIN_DATE DATETIME ,
@SLIDE_END_DATE DATETIME ,
@TEMP_DATE DATETIME ,
@RET_STR NVARCHAR(50);
-- BEGIN CALCULATION USE SLIDE RULE ALGOL
SET @SLIDE_BEGIN_DATE = @VAR_DATE_TIME ;
SET @SLIDE_END_DATE = GETDATE() ;
SET @RET_STR = '' ;
-- HOW SLIDE SHIFT ??
IF(YEAR(@SLIDE_END_DATE)=YEAR(@SLIDE_BEGIN_DATE))
BEGIN
-- DAY SHIFT
-- ยกทดไปเป็นวันสุดท้ายของเดือนที่แล้วและทำให้เป็นลบเพื่อง่ายกับ DATEADD
SET @TEMP = (DAY(@VAR_DATE_TIME) - 1) *(-1) ;
-- จัดดึง ไปข้างหน้าด้วยจำนวนวันที่เท่ากัน
SET @SLIDE_BEGIN_DATE = DATEADD(DAY ,@TEMP ,@VAR_DATE_TIME) ;
SET @SLIDE_END_DATE = DATEADD(DAY ,@TEMP ,GETDATE()) ;
SET @YEAR_INTERVAL = 0 ;
SET @MONTH_INTERVAL = MONTH(@SLIDE_END_DATE) - MONTH(@SLIDE_BEGIN_DATE);
SET @DAY_INTERVAL = DAY(@SLIDE_END_DATE) -1 ;
END
ELSE
BEGIN
-- YEAR SHIFT >> SET MONTH = 1 >> JAN
SET @SLIDE_BEGIN_DATE = dbo.DATE_SERIAL( YEAR(@VAR_DATE_TIME) ,1 ,1 ) ;
-- หาช่วงการ SHIFT
SET @TEMP = (DATEDIFF( DAY ,@SLIDE_BEGIN_DATE ,@VAR_DATE_TIME ) * (-1)) -1 ;
if ((YEAR(@SLIDE_BEGIN_DATE) % 4)=0)
BEGIN
SET @TEMP = @TEMP+1 ; -- ปีอธิกรสุรทิน
END
-- ดึงวันสุดท้ายไปเท่าๆกัน << that's call slide rule
SET @SLIDE_END_DATE = DATEADD(DAY ,@TEMP ,GETDATE() ) ;
SET @RET_STR = CONVERT(VARCHAR(20) ,@SLIDE_END_DATE ,102) + '|' ;
-- EASY TO CALCUTION NOW
SET @YEAR_INTERVAL = YEAR(@SLIDE_END_DATE) - YEAR(@SLIDE_BEGIN_DATE) ;
SET @MONTH_INTERVAL = MONTH(@SLIDE_END_DATE) -1 ;
SET @DAY_INTERVAL = DAY(@SLIDE_END_DATE) ;
-- FINE TUNE
IF (@YEAR_INTERVAL <0)
BEGIN
SET @YEAR_INTERVAL = 0 ;
END
IF ((MONTH(@SLIDE_END_DATE)=12) AND (@DAY_INTERVAL=31))
BEGIN
SET @YEAR_INTERVAL = @YEAR_INTERVAL +1 ;
SET @MONTH_INTERVAL = 0 ;
SET @DAY_INTERVAL = 0 ;
END
--SET @TEMP_DATE =
END
-- จัดให้สวยงาม เศษใดมีค่าเท่ากับศูนย์ก็จะไม่นำออกสู่สายตาประชาชนค่ะ
SET @RET_STR = '' ;
IF ( @YEAR_INTERVAL > 0)
BEGIN
SET @RET_STR = @RET_STR + CONVERT(NVARCHAR(10) ,@YEAR_INTERVAL ) + N' ปี ';
END
IF ( @MONTH_INTERVAL > 0)
BEGIN
SET @RET_STR = @RET_STR + CONVERT(NVARCHAR(10) ,@MONTH_INTERVAL ) + N' เดือน ' ;
END
IF ( @DAY_INTERVAL > 0)
BEGIN
SET @RET_STR = @RET_STR + CONVERT(NVARCHAR(10) ,@DAY_INTERVAL ) + N' วัน ' ;
END
/*
-- DEBUG ONLY
SET @RET_STR = @RET_STR + CONVERT(VARCHAR(20) ,@DAY_INTERVAL ) + ':'
+ CONVERT(VARCHAR(20) ,@MONTH_INTERVAL ) + ':'
+ CONVERT(VARCHAR(20) ,@YEAR_INTERVAL ) ;
*/
RETURN RTRIM(LTRIM(@RET_STR)) ;
END
GO
Date :
2010-03-02 22:39:07
By :
blurEye
No. 12
ขอบคุณมากนะคะ แต่เราไม่ค่อยเข้าใจ C# สักเท่าไร ไม่ทราบว่าช่วยอธิบายให้ฟังหน่อยจะได้ไหม
ว่ามันต่างกันอย่างไรกับสิ่งที่บอกมาคะ
Date :
2010-03-04 15:01:30
By :
jyp
อันไหน C# คะ
อ๋อ ใช้ TAG C# ครอบ Code ไว้เท่านั้นเอง
เป็น Store procedure ของ MSSQL น่ะค่ะ เขียนฝังไว้ที่นั่นเลย
เวลา ใช้ QUERY ดึงข้อมูลออกมาก้อไปอ้างเท่านั้นเอง
อย่างปกติคือ
SELECT receive_date FROM table_name
ก้อใส่ STORE PROCEDURE เข้าไปเลย
SELECT receive_date ,dbo.DURATION_CALCULATION(receive_date) FROM table_name
จะได้ คอลัมภ์ที่เป็นอายุออกมาเลยค่ะ จากนั้นก้อเขียน code จะ asp php ยังไงก้อได้เพื่อนำข้อมูลออกมาแสดงค่ะ
Date :
2010-03-04 16:28:45
By :
blurEye
มาช่วยจับไก่เข้าเล้า และ....
ทับถม
ทับถม
ทับถม
ทับถม
ทับถม
Date :
2010-03-05 08:43:25
By :
tungman
Load balance : Server 01