Row*_* Po 48 javascript jquery
有没有简单的方法将12小时hh:mm AM/PM转换为24小时hh:mm使用jquery?
注意:不使用其他库.
我有一个var time = $("#starttime").val()
返回hh:mm AM/PM.
dev*_*l69 73
试试这个
var time = $("#starttime").val();
var hours = Number(time.match(/^(\d+)/)[1]);
var minutes = Number(time.match(/:(\d+)/)[1]);
var AMPM = time.match(/\s(.*)$/)[1];
if(AMPM == "PM" && hours<12) hours = hours+12;
if(AMPM == "AM" && hours==12) hours = hours-12;
var sHours = hours.toString();
var sMinutes = minutes.toString();
if(hours<10) sHours = "0" + sHours;
if(minutes<10) sMinutes = "0" + sMinutes;
alert(sHours + ":" + sMinutes);
Run Code Online (Sandbox Code Playgroud)
Krz*_*ski 38
这个问题需要更新的答案:)
const convertTime12to24 = (time12h) => {
const [time, modifier] = time12h.split(' ');
let [hours, minutes] = time.split(':');
if (hours === '12') {
hours = '00';
}
if (modifier === 'PM') {
hours = parseInt(hours, 10) + 12;
}
return `${hours}:${minutes}`;
}
console.log(convertTime12to24('01:02 PM'));
console.log(convertTime12to24('05:06 PM'));
console.log(convertTime12to24('12:00 PM'));
console.log(convertTime12to24('12:00 AM'));
Run Code Online (Sandbox Code Playgroud)
Ste*_*ber 19
我必须做类似的事情,但我正在生成一个Date
对象,所以我最终创建了这样的函数:
function convertTo24Hour(time) {
var hours = parseInt(time.substr(0, 2));
if(time.indexOf('am') != -1 && hours == 12) {
time = time.replace('12', '0');
}
if(time.indexOf('pm') != -1 && hours < 12) {
time = time.replace(hours, (hours + 12));
}
return time.replace(/(am|pm)/, '');
}
Run Code Online (Sandbox Code Playgroud)
我觉得这看起来容易一些.您以h:mm am/pm格式提供字符串.
var time = convertTo24Hour($("#starttime").val().toLowerCase());
var date = new Date($("#startday").val() + ' ' + time);
Run Code Online (Sandbox Code Playgroud)
例子:
$("#startday").val('7/10/2013');
$("#starttime").val('12:00am');
new Date($("#startday").val() + ' ' + convertTo24Hour($("#starttime").val().toLowerCase()));
Wed Jul 10 2013 00:00:00 GMT-0700 (PDT)
$("#starttime").val('12:00pm');
new Date($("#startday").val() + ' ' + convertTo24Hour($("#starttime").val().toLowerCase()));
Wed Jul 10 2013 12:00:00 GMT-0700 (PDT)
$("#starttime").val('1:00am');
new Date($("#startday").val() + ' ' + convertTo24Hour($("#starttime").val().toLowerCase()));
Wed Jul 10 2013 01:00:00 GMT-0700 (PDT)
$("#starttime").val('12:12am');
new Date($("#startday").val() + ' ' + convertTo24Hour($("#starttime").val().toLowerCase()));
Wed Jul 10 2013 00:12:00 GMT-0700 (PDT)
$("#starttime").val('3:12am');
new Date($("#startday").val() + ' ' + convertTo24Hour($("#starttime").val().toLowerCase()));
Wed Jul 10 2013 03:12:00 GMT-0700 (PDT)
$("#starttime").val('9:12pm');
new Date($("#startday").val() + ' ' + convertTo24Hour($("#starttime").val().toLowerCase()));
Wed Jul 10 2013 21:12:00 GMT-0700 (PDT)
Run Code Online (Sandbox Code Playgroud)
dja*_*aut 11
这里我的解决方案包括秒:
function convert_to_24h(time_str) {
// Convert a string like 10:05:23 PM to 24h format, returns like [22,5,23]
var time = time_str.match(/(\d+):(\d+):(\d+) (\w)/);
var hours = Number(time[1]);
var minutes = Number(time[2]);
var seconds = Number(time[3]);
var meridian = time[4].toLowerCase();
if (meridian == 'p' && hours < 12) {
hours += 12;
}
else if (meridian == 'a' && hours == 12) {
hours -= 12;
}
return [hours, minutes, seconds];
};
Run Code Online (Sandbox Code Playgroud)
这将有助于:
function getTwentyFourHourTime(amPmString) {
var d = new Date("1/1/2013 " + amPmString);
return d.getHours() + ':' + d.getMinutes();
}
Run Code Online (Sandbox Code Playgroud)
示例:
getTwentyFourHourTime("8:45 PM"); // "20:45"
getTwentyFourHourTime("8:45 AM"); // "8:45"
Run Code Online (Sandbox Code Playgroud)
更新: 注意:"时间"和"上午/下午"之间应该有一个时间段空格.
小智 6
function timeConversion(s) {
var time = s.toLowerCase().split(':');
var hours = parseInt(time[0]);
var _ampm = time[2];
if (_ampm.indexOf('am') != -1 && hours == 12) {
time[0] = '00';
}
if (_ampm.indexOf('pm') != -1 && hours < 12) {
time[0] = hours + 12;
}
return time.join(':').replace(/(am|pm)/, '');
}
Run Code Online (Sandbox Code Playgroud)
使用字符串参数调用该函数:
timeConversion('17:05:45AM')
Run Code Online (Sandbox Code Playgroud)
或者
timeConversion('07:05:45PM')
Run Code Online (Sandbox Code Playgroud)