سؤال

في Rails 3 ، هل هناك طريقة لاستخدام DateTime_Select وعرض ساعات عرض خيارات 12 ساعة/مساء بدلاً من خيارات 24 ساعة؟

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

المحلول

في حالة تعثر أي شخص على هذا السؤال ، فإن إجابة Rails 3.2 هي:

<%= f.datetime_select :attribute_name,  
                       ampm: true %>  

نصائح أخرى

ها هي الطريقة التي أضفتها إلى صف المساعد الخاص بي:

def am_pm_hour_select(field_name)
select_tag(field_name,options_for_select([
  ["1 AM", "01"],["2 AM", "02"],["3 AM", "03"],["4 AM", "04"],["5 AM", "05"],["6 AM", "06"],
  ["7 AM", "07"],["8 AM", "08"],["9 AM", "09"],["10 AM", "10"],["11 AM", "11"],["12 PM", "12"],
  ["1 PM", "13"],["2 PM", "14"],["3 PM", "15"],["4 PM", "16"],["5 PM", "17"],["6 PM", "18"],
  ["7 PM", "19"],["8 PM", "20"],["9 PM", "21"],["10 PM", "22"],["11 PM", "23"],["12 AM", "0"]]))
end

ثم قمت بتوصيل هذه الطريقة في وجهة نظري:

<%= am_pm_hour_select "eventtime[start(4i)]" %>  

يبدو أنه يقوم بالخدعة ، ولكن إذا كانت هناك طريقة أكثر تصاريحًا للقيام بذلك ، فسأكون مهتمًا بسماع ذلك.

(تحديث: الأخطاء الثابتة التي عثر عليها Thucydides)

يعامل الرمز أدناه منتصف الليل والظهر بشكل غير صحيح: إنه يدعو الظهر "12 صباحًا" ، وهو منتصف الليل ؛ يدعو منتصف الليل '12 مساءً ، وهو الظهر.

أيضًا ، يجب أن يستخدم الرمز 0:00 في منتصف الليل ، وهو المعيار الدولي.

مُثَبَّت:

def am_pm_hour_select(field_name)
select_tag(field_name,options_for_select([
    ["1 AM", "01"],["2 AM", "02"],["3 AM", "03"],["4 AM", "04"],["5 AM", "05"],["6 AM", "06"],
    ["7 AM", "07"],["8 AM", "08"],["9 AM", "09"],["10 AM", "10"],["11 AM", "11"],["Noon", "12"],
    ["1 PM", "13"],["2 PM", "14"],["3 PM", "15"],["4 PM", "16"],["5 PM", "17"],["6 PM", "18"],
    ["7 PM", "19"],["8 PM", "20"],["9 PM", "21"],["10 PM", "22"],["11 PM", "23"],["Midnight", "0"]]))
end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top