الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اضافة ايام على التاريخ الذي يدخله المستخدم

بدأه marwaaaaa في 16 أغسطس 2011 · 3 رد · 1,114 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

عندي form اريد ادخال تاريخ بداية وليكن 01/01/2011 ثم اكتب عدد الايام المضافة وليكن 10 فيعطى تاريخ النهاية وهو 11/01/2011

وجدت هذا الكود اثناء البحث ولكن لايمكن اضافة ايام اكثر من 31 مثلا لو تاريخ البداية 01/01/2011 ثم الايام المضافة 360 يوم لايعمل بشكل صحيح

الرجاء التعديل عليه

<html>
	<head>
		<script>

		function add() {
			   var daysInMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
			   var numDaysToAdd = document.frm.numDaysToAdd1.value;

			   var start = new Date(document.frm.start.value);

					if (start != '') {

						var y= start.getYear();
		       // check for leap year (see if year divided by four leaves a remainder). If it is a leap year, add one day to February        

			   var remainder = y % 4;

			   	if (remainder == 0) {
				  daysInMonth[1]=29;

				          }     

				var m  = start.getMonth(); 
				var x = start.getDate() + parseInt(numDaysToAdd, 0);


// check for roll over into next month, and then check that for roll into next year.

                if (x > daysInMonth[m]){
					 x = x - daysInMonth[m]; 
					 m++;           
					 if (m > 11){
					 m=0; 
					 y++;
					     }
						   } 

						          // increment month to real month, not "Array" month
					m++;
					if (x<10)
					x="0"+x

					if (m<10)
					m="0"+m

					var myDate =m+"/"+x+"/"+y;

			        document.frm.end.value = myDate;  }}

              </script>

              </head>


              <body>

              <form name="frm">
              <input type="text" id="start"  onchange="add()"value="01/09/2003">
              <input name="numDaysToAdd1" type="text" id="noday" onchange="add()" value=0>
              <input type="text" id="end" value="">
              </form>


              </body>
        </html>
#2

عفوا لقد وجدت الحل ولكن المشكلة الان هي انه بيتعامل مع شهر / يوم / سنه بمعني 12/31/2001 وانا اريده يوم / شهر / سنه فكيف اعدل دالهgetDate

#3

تفضل اخي الكريم

ان شاء الله يكون على حسب المطلوب

<html>
    <head>
        <script>
            function add() 
            {
                var start = new Date(2011,1,1);
                var plus  = document.getElementById('noday').value;
                if(!isNaN(plus))
                {
                    var x     = Number(start.getDate()) + Number(plus);
                    var end   = new Date(2011,1,x);
                    document.getElementById('end').value = end.getFullYear() + '/' + end.getMonth() + '/' + end.getDate();
                }else
                    {
                        alert("enter only number");
                    }
            }
        </script>

    </head>
    <body>
        <form name="frm">
            <input type="text" id="start"  onchange="add()"value="2001/1/1">
            <input name="numDaysToAdd1" type="text" id="noday" onchange="add()" value=0>
            <input type="text" id="end" value="">
        </form>      
    </body>
</html>

تم تعديل هذه المشاركة بواسطة M.B.O في 26 أغسطس 2011 في 08:15

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

#4

أخي M.B.O

الكود الذي وضعته فيه مشكلة في السطر

var end = new Date(2011,1,x);

و هناك كود آخر

<script language="JavaScript"><!--
function addDays(myDate,days) {
    return new Date(myDate.getTime() + days*24*60*60*1000);
}

alert(addDays(new Date(),10));
//--></script>

كود آخر أيضا

  var today       =new Date();
  var in_a_week   =new Date().setDate(today.getDate()+7);
  var ten_days_ago=new Date().setDate(today.getDate()-10);

مع ملاحظة أنه يمكنك بدل استخدام الإشارة + يمكنك استخدام الإشارة - و ذلك سيتم الطرح بدلا من الجمع

كل ودي و احترامي

مواقع أعجبتني :

دورة عربية في الـ J2ME

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…