سؤال

أرغب في بناء طريقة عرض تسمح للمستخدم بالحصول على قائمة بالأشياء التي تحدث حول وقت معين.

ما هي أفضل طريقة لبناء هذا الطلب؟ على سبيل المثال، إذا أردت الحصول على جميع الأحداث التي تحدث الآن، أتمكن من النشر / الأحداث / 2009/09/29/8/23 /

يبدو أن هذا مملة إلى حد ما خاصة إذا أردت أن يكون لديك تواريخ متعددة في طلب. يمكن أن ينتهي بك الأمر مع عناوين URL التي تبدو / أحداث / بين / 2009/09/29/8/23/2006/16/17/45 /

هل هناك طريقة بسيطة (Javascipfipt) لتحويل تاريخ / وقت إلى طابع زمني وتمرير ذلك ك Int، والتي يمكنني تحويلها بعد ذلك إلى DateTime داخل العرض؟

هل كانت مفيدة؟

المحلول

كنت أستخدم بنية URL أكثر قابلية للقراءة مثل هذا:

/events/2009-09-29/0823/
/events/2009-09-29/0823/to/2009-10-10/2100/

إليك بعض JavaScript الأساسية التي تظهر لبناء هذا الهيكل:

function pad(number) {
    return (number < 10 ? '0' : '') + number
}
function simpleDate(date) {
    return date.getUTCFullYear() + '-' + pad(date.getUTCMonth()) + '-' + pad(date.getUTCDay())
}
function simpleTime(date) {
    return pad(d.getUTCHours()) + pad(d.getUTCMinutes())
}
var d = new Date();
alert('/events/' + simpleDate(d) + '/' + simpleTime(d) + '/');

نصائح أخرى

يمكنك أن تفعل شيئا مثل هذا:

var d = تاريخ جديد ("2009-09-30")؛ var timestamp = d.gettime () / 1000.0؛

سيحصل هذا على الطابع الزمني باستخدام JavaScript.

  • / الأحداث / 2009 / -> جميع الأحداث في عام 2009
  • / الأحداث / 2009/09 / -> جميع الأحداث في أغسطس - 09
  • / الأحداث / 2009/09/29 / -> جميع الأحداث في 29 أغسطس - 09
  • / الأحداث / 2009/09/99/8 / -> جميع الأحداث من الساعة 8:00 إلى 8:59 في 29 أغسطس - 09
  • / الأحداث / 2009/09/99/8/23 /> جميع الأحداث في الساعة 8:23 في 29 أغسطس - 09
  • / الأحداث / 2009/09/29/8/23 / 10 -> جميع الأحداث من 8:23 إلى 8:33 في 29 أغسطس - 09
  • / الأحداث / 2009/09/29/8/23 / 91 -> جميع الأحداث من 8:23 إلى 9:54 في 29 أغسطس - 09
  • / الأحداث / 2009/09/29/8 / 10 -> جميع الأحداث من 8:00 إلى 18:00 في 29 أغسطس - 09
  • / الأحداث / 2009/09/99 / 10 -> جميع الأحداث من 29 أغسطس - 09 إلى 8 سبتمبر-09
  • / الأحداث / 2009/09 /؟ 2 -> جميع الأحداث في أغسطس وسبتمبر
  • / الأحداث / 2009 /؟ 2 -> جميع الأحداث في عامي 2009 و 2010
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top