String was not recognized as a valid DateTime.
هذا هو الكود اتمنى اصلاح الخطا
كود :
' String to DateTime
Dim MyString As [String]
MyString = rdlast.Text
'MyString = "1999-09-01 21:34 p.m."; //Depends on your regional settings
Dim mystring2 As [String]
mystring2 = tblasttime
Dim MyDateTime As DateTime
MyDateTime = New DateTime()
MyDateTime = DateTime.ParseExact(MyString, "yyyy-MM-dd HH:mm tt", Nothing)
Dim mydatetime2 As DateTime
mydatetime2 = New DateTime()
mydatetime2 = DateTime.ParseExact(mystring2, "yyyy-MM-dd HH:mm tt", Nothing)
'_________________________________________________
If MyDateTime > mydatetime2 Then
Image1.ImageUrl = "~/mgs/on.png"
Else
Image1.ImageUrl = "~/mgs/off.png"
End If
التنسيق المخزن بالقاعدة والموجود بالمتغيرين mydatetime و mydatetime2
هكذا
إقتباس :Sep 30 2013 9:11PM
مصدر الكود
http://www.codeproject.com/Articles/1474...ng-and-For
السلام عليكم ورحمة الله وبركاته
هناك عدة نقاط
أولاً وجدت في التعليق الذي في المثال ".p.m" والمفروض بدون نقاط "pm"
ثانياً لاحظت التاريخ موجود بالصيغتين معا 12 و24 بدلالة pm والأحرف الكبيرة للساعة HH
ثالثاً الأمر ParseExact حساس جداً حتى بوجود مسافة زائدة، فهو يقوم بمطابقة تركيبتين أحداهما تكون المتغير والآخر الـ Format التي يفترض أن المتغير متطابق معها.
كود :
أعتقد بهذا يتضح معنى التطابق
"1999-09-01 21:34"
" - - : "
"yyyy-MM-dd HH:mm"
رابعاً الاعدادات الاقليمية ضرورية في بعض الدول ولا تترك Nothing
أخيراً أنظر هذا المثال (بعد إزالة tt الخاص بنظام 12 والاكتفاء بظام 24 من المتغير MyString) (يجب التأكد من تركيبتك الخاصة من حيث yyyy-MM-dd وليست yyyy/MM/dd للتاريخ)
كود :
Dim MyString As String
Dim MyDate As Date
MyString = "1999-09-01 21:34"
MyDate = Date.ParseExact(MyString, "yyyy-MM-dd HH:mm", New Globalization.CultureInfo("en-us"))
'Me.TextBox1.Text = MyDate.ToString(New Globalization.CultureInfo("en-us"))
Me.TextBox1.Text = MyDate.ToString("yyyy/MM/dd hh:mm tt", New Globalization.CultureInfo("en-us")) ' هنا حددت عرض الوقت بنظام 12
MyString = "1434-09-01 21:34"
MyDate = Date.ParseExact(MyString, "yyyy-MM-dd HH:mm", New Globalization.CultureInfo("ar-sa"))
'Me.TextBox2.Text = MyDate.ToString(New Globalization.CultureInfo("ar-sa"))
Me.TextBox2.Text = MyDate.ToString("yyyy/MM/dd hh:mm tt", New Globalization.CultureInfo("ar-sa")) ' هنا حددت عرض الوقت بنظام 12
جرب أن تضيف مسافة في آخر المتغير MyString أو تضع / بدلا من - وانظر ماذا يحدث
السلام عليكم ورحمة الله وبركاته
طيب اخوي ابورايد
اريد منك طريقة لحفظ التاريخ والوقت الحاليين بحيث اقارن بهن .
لاني تعبت لي سنة كاملة مع التاريخ والوقت .
الطريقة اللي استخدمها كالتالي:
كود :
Dim dt As Date = Date.Now
Dim ts As DateTime
ts = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(dt, TimeZoneInfo.Local.Id, "Arab Standard Time").ToString
واقوم بحفظ المتغير ts الى عمود من نوع varchar
واستقبل القيمة باداة تسمية
هل لديك اقتراح بتغيير طريقتي هذه لانه لا بد منها ان لم يكن حل آخر.
السلام عليكم ورحمة الله وبركاته
أول شيء اعتمد تنسيق موحد للتاريخ والوقت ضعه في Module كالتالي
كود :
Module Module1
' "yyyy/MM/dd-HH:mm" التنسيق الموحد
Public myDateFormat As String = "yyyy/MM/dd-HH:mm"
End Module
وعندما تريد حفظ التارخ والوقت فاستخدم التالي
كود :
Dim myDateNow As String = Now.ToString(myDateFormat, New Globalization.CultureInfo("en-us"))
الآن لديك الوقت والتاريخ الحالي بالشكل الموحد على هيئة نص، ويمكن حفظه في قاعدة البيانات، وطبق على المقارنة بشكل عادي وكأنك تقارن بين رقمين، يعني لو كان التاريخ لآخر رد في قاعدة البيانات rdlast حيكون كالتالي
كود :
Dim myDateNow As String = Now.ToString(myDateFormat, New Globalization.CultureInfo("en-us"))
If myDateNow > rdlast Then
'
Else
'
End If
يمكن تسأل لماذا أضع دائما New Globalization.CultureInfo أخبرك من أجل لو قمت بالتجربة على جهازك الخاص وكانت إعدادته السعودية تكون النتيجة سليمة أيضاً.
السلام عليكم ورحمة الله وبركاته
بارك الله فيك ورفع قدرك
الان لقد قمت بتغيير نوع العمود الى datetime وجعلت القيمة الافتراضية الدالة GETDATE()
لقد عرفت سازيل الدالة فقط GETDATE()
وبانتظار التعليق على النوع datetime
الان انظر ماذا فعلت هل صحيح ام لا
كود :
Public myDateFormat As String = "yyyy/MM/dd-HH:mm"
Public Function mydate() As DateTime
Dim myDateNow As String = Now.ToString(myDateFormat, New Globalization.CultureInfo("en-us"))
Return myDateNow
End Function
السلام عليكم ورحمة الله وبركاته
بالنسبة لـ GETDATE سليمة وقد تكون الأفضل، ولكنها ستربكك إذا كنت تطور على جهازك الخاص باعدادت التاريخ فيها هجري
أما بالنسبة للدالة التي وضعتها فهي غير صحيحة، لأن الدالة تعيد DateTime وليس String في حيت أن ما بداخلها ينتج String وليس DataTime
السلام عليكم ورحمة الله وبركاته
يعني التصحيح فقط اكتب as string
(01-10-13, 11:41 PM)سعود كتب : [ -> ]يعني التصحيح فقط اكتب as string
السلام عليكم ورحمة الله وبركاته
نعم، وننتظر إبداعاتك...
السلام عليكم ورحمة الله وبركاته
حاولت اطبق الكود على اللي عندي ماضبط
يالله فزعتك
كود :
Dim tblasttime As String = ""
هذا متغير ليعرض اخر وقت للعضو
كود :
tblasttime = tbr.Item("lasttime")
الان اسندنا له القيمة
والتالي الكود
كود :
Dim tmember As String = tblasttime.ToString(myDateFormat, New Globalization.CultureInfo("en-us"))
يظهر خط ازرق