View Full Version : سوال: تابع Date
yyuser
شنبه 23 بهمن 1400, 12:06 عصر
سلام وقت بخیر
چطور میشه به جای پارامترهای تابع Date که شامل مقادیر عددی سال ماه و روز است از اسم متغیر هایی استفاده کرد که در آن مقادیر ورودی های صفحه در آن وجود دارد؟ به این صورت که با دادن مقدار دلخواه یک تاریخ ساخته شود. آیا این امکان وجود دارد یا تابع date تنها با مقادیر عددی ثابت کار میکند؟
var longMounts=document.getElementById('monthLong').va lue;
var longDay=document.getElementById('dayLong').value;
var longYear=document.getElementById('yearLong').value ;
document.getElementById('myDate').innerHTML=new Date(longMounts-longDay-longYear);
البته این کار در یک تابع انجام می شود.
mazoolagh
دوشنبه 25 بهمن 1400, 11:00 صبح
سلام و روز خوش
شما که خودتون پاسخ رو نوشتین!
البته 2 تا اشکال دیده میشه:
1- بجای innerhtml باید از value استفاده کنین.
2- لیست آرگومان های تابع date رو باید با کاما (,) جدا کنین نه (-) .
yyuser
سه شنبه 26 بهمن 1400, 06:08 صبح
سلام و روزبخیر
درسته ظاهرا پاسخ همینه ولی کد جواب نمیده و اما اشکالاتی که فرموده بودید:
1. حروجی من یک پاراگرافه برای همین با innerHTML نوشتم.
2. این روش مقدار دهی ISO است که از سمت چپ به ترتیب سال ماه روز پارامترهای اون هستند که با - از هم جدا میشن هرچند با , که حالت long است هم امتحان کردم.
yyuser
سه شنبه 26 بهمن 1400, 10:41 صبح
سلام مجدد
بله درست شد اگه بین آرگومان های تابع Date هموم کاما رو بذاریم جواب میده. متشکرم
ولی سوال من اینجاست: ما دو روش دیگه هم داریم که آرگومان ها با - و / قرار میگیرن درسته؟
mazoolagh
سه شنبه 26 بهمن 1400, 11:20 صبح
سلام دوباره
1. حروجی من یک پاراگرافه برای همین با innerHTML نوشتم.
مهم نیست که خروجی چی هست، innerhtml برای بعضی از المانها (مثل همین input text) مقداری برنمیگردونه.
حتی innertext هم فقط در ie کار میکنه؛ بنابراین فقط باید از value استفاده کنین (بخش 1 پاسخ قبل رو هم ادیت کردم)
2. این روش مقدار دهی ISO است که از سمت چپ به ترتیب سال ماه روز پارامترهای اون هستند که با - از هم جدا میشن
این روش نمایش هست و نه روش مقدار دهی تابع!
لیست آرگومان های توابع (مثل همین date) باید با (,) از هم جدا بشن - این قانونه!
mazoolagh
سه شنبه 26 بهمن 1400, 11:23 صبح
<label for="year">Year</label>
<input type="text" id="year" />
<label for="month">Month</label>
<input type="text" id="month" />
<label for="day">Day</label>
<input type="text" id="day" /><br /><br />
<input type="button" value="calc date" onclick="calc()" /><br /><br />
<label for=" result">Result</label>
<input type="text" id="result" />
<label for=" resultiso">Result ISO</label>
<input type="text" id="resultiso" />
function calc() {
var y = document.getElementById('year').value;
var m = document.getElementById('month').value;
var d = document.getElementById('day').value;
var result = new Date(y, m, d);
document.getElementById('result').value = result;
document.getElementById('resultiso').value = result.toISOString();
}
نتیجه رو اینجا ببینین:
https://jsfiddle.net/mazoolagh/52a3fLh9/23/
mazoolagh
سه شنبه 26 بهمن 1400, 11:33 صبح
ولی سوال من اینجاست: ما دو روش دیگه هم داریم که آرگومان ها با - و / قرار میگیرن درسته؟
بخاطر ندارم چنین چیزی جایی دیده باشم.
- و / چون operator ریاضی هستن، قبل از هر چیز اینها روی مقادیر عمل میکنن و حاصلشون بعنوان یک آرگومان دیده میشه.
شاید زبان های خاصی باشن که از این روش استفاده کنن، ولی احتمالا توابع ریاضی ندارن و فقط روی ابجکت های بخصوصی کار میکنن.
yyuser
چهارشنبه 27 بهمن 1400, 14:36 عصر
سلام
از توضیحاتتون واقعا ممنونم. به هر حال من جواب گرفتم.
ولی سوال من (ما دو روش دیگه هم داریم که آرگومان ها با - و / قرار میگیرن درسته؟) با توجه به این منبع است:
https://www.w3schools.com/js/js_date_formats.asp
mazoolagh
پنج شنبه 28 بهمن 1400, 09:22 صبح
ولی سوال من (ما دو روش دیگه هم داریم که آرگومان ها با - و / قرار میگیرن درسته؟) با توجه به این منبع است:
https://www.w3schools.com/js/js_date_formats.asp
شما دقت نکردین؛ اینجا کل عبارت تاریخ بصورت یک پارامتر string به تابع ارسال میشه و چند پارامتر نداریم که قرار باشه از هم جدا بشن.
این که تابع چجوری اون string رو parse میکنه و اجزای تاریخ رو بیرون میکشه یک داستان دیگه است.
yyuser
جمعه 29 بهمن 1400, 11:09 صبح
بله ممنون از راهنمایی تون
متشکرم.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.