Преобразование времени UTC в часы, минуты и формат AM / PM в javascript

#javascript #time #utc

#javascript #время #utc

Вопрос:

Учитывая время UTC, каков простой способ преобразовать его в формат в часах, минутах и AM / PM (например, «3:30 вечера»)?

Комментарии:

1. Что вы пробовали?

2. Пробовал getHours() и getMinutes(), и, вероятно, есть несколько хакерских способов их переформатирования. Знать moment.js существует и рассматривает возможность его использования, но задается вопросом, существует ли что-нибудь более простое.

3. С наименьшим количеством строк!

4. Вы должны проверить moment.js . Это избавляет от боли. Пример. moment.utc(new Date()).format("h:mm A");

Ответ №1:

 <script type="text/javascript">
<!--

var a_p = "";
var d = new Date();

var curr_hour = d.getHours();

if (curr_hour < 12)
   {
   a_p = "AM";
   }
else
   {
   a_p = "PM";
   }
if (curr_hour == 0)
   {
   curr_hour = 12;
   }
if (curr_hour > 12)
   {
   curr_hour = curr_hour - 12;
   }

var curr_min = d.getMinutes();

document.write(curr_hour   " : "   curr_min   " "   a_p);

//-->
</script>
 

http://www.webdevelopersnotes.com/tips/html/formatting_time_using_javascript.php

Ответ №2:

Используйте следующую функцию, вы можете изменить время utc в любом формате:-

 var  getDateString = function(date, format) {
            var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
            getPaddedComp = function(comp) {
                return ((parseInt(comp) < 10) ? ('0'   comp) : comp)
            },
            formattedDate = format,
            o = {
                "y ": date.getFullYear(), // year
                "M ": months[date.getMonth()], //month
                "d ": getPaddedComp(date.getDate()), //day
                "h ": getPaddedComp((date.getHours() > 12) ? date.getHours() % 12 : date.getHours()), //hour
                "m ": getPaddedComp(date.getMinutes()), //minute
                "s ": getPaddedComp(date.getSeconds()), //second
                "S ": getPaddedComp(date.getMilliseconds()), //millisecond,
                "t ": (date.getHours() >= 12) ? 'PM' : 'AM'
            };

            for (var k in o) {
                if (new RegExp("("   k   ")").test(format)) {
                    formattedDate = formattedDate.replace(RegExp.$1, o[k]);
                }
            }
            return formattedDate;
        };
 

Теперь вы можете использовать его для форматирования любого объекта даты, например:-

  getDateString(new Date(), "h:m:s:t")

o/p: "01:34:22:AM"


 getDateString(new Date(), "y:M:d")
 o/p:- "2014:Jun:20"

 getDateString(new Date(), "y/M/d h:m:s:t")
 o/p:- "2014/Jun/20 01:34:22:AM"
 

Ответ №3:

 // d = new Date(utc);
var hour = d.getHours() == 0 ? 12 : (d.getHours() > 12 ? d.getHours() - 12 : d.getHours());
var min = d.getMinutes() < 10 ? '0'   d.getMinutes() : d.getMinutes();
var ampm = d.getHours() < 12 ? 'AM' : 'PM';
var time = hour   ':'   min   ' '   ampm;