Как получить AM или PM?
У меня есть кнопки с названиями больших городов.
Нажав на них, я хочу получить в них местное время.
$('#btnToronto').click(function () {
var hours = new Date().getHours();
var hours = hours-2; //this is the distance from my local time
alert ('Toronto time: ' + hours + ' h'); //this works correctly
});
Но как я могу получить AM или PM?
Ответы
Ответ 1
Попробуйте ввести код:
$('#btnToronto').click(function () {
var hours = new Date().getHours();
var hours = (hours+24-2)%24;
var mid='am';
if(hours==0){ //At 00 hours we need to show 12 am
hours=12;
}
else if(hours>12)
{
hours=hours%12;
mid='pm';
}
alert ('Toronto time: ' + hours + mid);
});
Ответ 2
Вы должны просто проверить, больше ли часов, чем 12.
var ampm = (hours >= 12) ? "PM" : "AM";
Но считаете ли вы случай, когда час меньше 2, прежде чем вы вычтите 2? В течение вашего часа вы получите отрицательное число.
Ответ 3
Вы можете использовать это,
var dt = new Date();
var h = dt.getHours(), m = dt.getMinutes();
var _time = (h > 12) ? (h-12 + ':' + m +' PM') : (h + ':' + m +' AM');
Надеюсь, что это будет лучше и с минутами.
Ответ 4
с date.js
<script type="text/javascript" src="http://www.datejs.com/build/date.js"></script>
вы можете написать вот так:
new Date().toString("hh:mm tt")
лист cheet здесь спецификаторы формата
tt
для AM/PM
Ответ 5
Если hours
меньше, чем 12
, то a.m..
var hours = new Date().getHours(), // this is local hours, may want getUTCHours()
am;
// adjust for timezone
hours = (hours + 24 - 2) % 24;
// get am/pm
am = hours < 12 ? 'a.m.' : 'p.m.';
// convert to 12-hour style
hours = (hours % 12) || 12;
Теперь для меня, поскольку вы не использовали getUTCHours
, в настоящее время через 2 часа после
hours + ' ' + am; // "6 p.m."
Ответ 6
очень интересный пост. в функции, которая принимает дату в параметре, она может выглядеть так:
function hourwithAMPM(dateInput) {
var d = new Date(dateInput);
var ampm = (d.getHours() >= 12) ? "PM" : "AM";
var hours = (d.getHours() >= 12) ? d.getHours()-12 : d.getHours();
return hours+' : '+d.getMinutes()+' '+ampm;
}
Ответ 7
Попробуйте следующее:
h = h > 12 ? h-12 +'PM' : h +'AM';
Ответ 8
Лучший способ без расширений и сложного кодирования:
date.toLocaleString([], { hour12: true});
Как вы показываете javascript datetime в 12-часовом формате AM/PM?
Ответ 9
Мне нравится использовать объект Date, вместо того, чтобы усложнять ситуацию.
Кроме того, я думал, что лучше всего добавить нули для однозначных часов.
Я написал этот format-12h component, который форматирует объект Date как 12-часовое время.
Вы можете посмотреть на код и результаты тестов.
Не стесняйтесь импортировать его и использовать, как показано в этих примерах:
format12h(new Date(2017,06,04,10,45,10)) => 10:45 am
format12h(new Date(2017,06,04,23,45,10)) => 11:45 pm
format12h(new Date(2017,06,04,23,45,10), true) => 11:45:10 pm
Ответ 10
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var ampm = hours >= 12 ? 'pm' : 'am';
hours = hours % 12;
hours = hours ? hours : 12;
minutes = minutes < 10 ? '0' + minutes : minutes;
var timewithampm = hours + ':' + minutes + ' ' + ampm;
return timewithampm;
Ответ 11
Try this:
var currentTimestamp = Date.now();
var postHour = currentTimestamp.getHours();
var mid="";
//var forMinutes = " For 15 Minutes";
if (postHour == 0 && postHour<12)
{ //At 00 hours we need to show 12 am
mid = "am";
}
else if (postHour >= 12)
{
mid='pm';
}