abolfazl-z
چهارشنبه 16 اردیبهشت 1394, 23:14 عصر
سلام
چند روزی دارم برای خودم بر روی یک برنامه تاریخ جاوا اسکریپت که با PHP ساخت شده کار می کنم که چند وقتی میشد که درست و حسابی با این تاریخ و مخلفاتش سر و کار نداشتیم تا اینکه به یک مشکلی بر خوردیم و راه حل هایی پیدا کردم ولی می خواستم بدونم که دیگر دوستان چیکار می کنن و اصلا به این موضوع توجهی دارن یا نه.(از توابع jdate استفاده می کنم)
خوب نگاه کنید همه میدونیم که ساعت رسمی کشور از اول فروردین ساعت 24:00:00 یک ساعت به جلو کشیده میشه که درواقع فقط از لحاظ دیداری اینطوریه ولی timestamp تغییری نمی کنه و این مدیریت تغییر در نمایش را خود توابع انجام میدهد. اما
مشکلی کوچیک اینجا این است که کاربر نباید ساعت 00:00:1 تا ساعت 00:59:59 را در 2 فروردین انتخاب کند که درواقع این ساعت از لحاظ دیداری وجود ندارد ولی راه حل اش این است که هنگامی که کاربر می خواست در دوم فروردین ساعت 00:00:01 تا ساعت یک را انتخاب کند غیرفعال باشد و فقط از ساعت یک به بعد قابل انتخاب باشد.
خوب اینجا مشکلی بوجود نمیاد و میشه با این روش به کاربر فهموند که چنین تاریخی در این زمان وجود ندارد بلکه ساعت ها به جلو کشیده میشه !
اما از اون طرف مشکل در نمایش تاریخ کمی غیرقابل تحمل تر می شود.
به مثال زیر توجه کنید :
مهر یا برچسب زمان (timestamp) تاریخ 94/06/30 و ساعت 20:00:00 برابر با 1442849400 است.
خوب میدونیم که ساعت 24 یا همان 00:00:00 31 شهریور ، ساعت رسمی کشور یک ساعت به عقب کشیده میشه. مشکلی اصلی همین جا است به مثال زیر توجه کنید :
من با اضافه کردن سه ساعت به تاریخ بالا بصورت (3600*3) خروجی زیر را میگیرم :
1394/06/30 23:00:00
من با اضافه کردن چهار ساعت به تاریخ بالا بصورت (3600*4) خروجی زیر را میگیرم :
1394/06/30 23:00:00
خوب حالا از دید ما برنامه نویس ها که نه ! ولی از دید کاربر کدوم برای ساعت قبلی و کدوم برای جدید عقب کشیده شده است ؟
آیا این مورد قابل اهمیت است ؟
نگاه کنید نمیگم قابل حل شدن نیست ولی می خواهم بدونم که در اینطور موارد شما چیکار می کنید ؟ شاید هم برای من تازگی داره...
چند روزی دارم برای خودم بر روی یک برنامه تاریخ جاوا اسکریپت که با PHP ساخت شده کار می کنم که چند وقتی میشد که درست و حسابی با این تاریخ و مخلفاتش سر و کار نداشتیم تا اینکه به یک مشکلی بر خوردیم و راه حل هایی پیدا کردم ولی می خواستم بدونم که دیگر دوستان چیکار می کنن و اصلا به این موضوع توجهی دارن یا نه.(از توابع jdate استفاده می کنم)
خوب نگاه کنید همه میدونیم که ساعت رسمی کشور از اول فروردین ساعت 24:00:00 یک ساعت به جلو کشیده میشه که درواقع فقط از لحاظ دیداری اینطوریه ولی timestamp تغییری نمی کنه و این مدیریت تغییر در نمایش را خود توابع انجام میدهد. اما
مشکلی کوچیک اینجا این است که کاربر نباید ساعت 00:00:1 تا ساعت 00:59:59 را در 2 فروردین انتخاب کند که درواقع این ساعت از لحاظ دیداری وجود ندارد ولی راه حل اش این است که هنگامی که کاربر می خواست در دوم فروردین ساعت 00:00:01 تا ساعت یک را انتخاب کند غیرفعال باشد و فقط از ساعت یک به بعد قابل انتخاب باشد.
خوب اینجا مشکلی بوجود نمیاد و میشه با این روش به کاربر فهموند که چنین تاریخی در این زمان وجود ندارد بلکه ساعت ها به جلو کشیده میشه !
اما از اون طرف مشکل در نمایش تاریخ کمی غیرقابل تحمل تر می شود.
به مثال زیر توجه کنید :
مهر یا برچسب زمان (timestamp) تاریخ 94/06/30 و ساعت 20:00:00 برابر با 1442849400 است.
خوب میدونیم که ساعت 24 یا همان 00:00:00 31 شهریور ، ساعت رسمی کشور یک ساعت به عقب کشیده میشه. مشکلی اصلی همین جا است به مثال زیر توجه کنید :
من با اضافه کردن سه ساعت به تاریخ بالا بصورت (3600*3) خروجی زیر را میگیرم :
1394/06/30 23:00:00
من با اضافه کردن چهار ساعت به تاریخ بالا بصورت (3600*4) خروجی زیر را میگیرم :
1394/06/30 23:00:00
خوب حالا از دید ما برنامه نویس ها که نه ! ولی از دید کاربر کدوم برای ساعت قبلی و کدوم برای جدید عقب کشیده شده است ؟
آیا این مورد قابل اهمیت است ؟
نگاه کنید نمیگم قابل حل شدن نیست ولی می خواهم بدونم که در اینطور موارد شما چیکار می کنید ؟ شاید هم برای من تازگی داره...