如何将7:30上午时间转换为javascript日期类型?
How to convert 7:30 AM time to javascript Date type?
如何将从 html 中格式为 Hours:Minutes AM/PM 的时间转换为 javascript 中的日期 class 对象。
您可以使用正则表达式解析时间并将其设置为日期对象。
var d = new Date(),
s ='7:30 AM',
parts = s.match(/(\d+)\:(\d+) (\w+)/),
hours = /am/i.test(parts[3]) ? parseInt(parts[1], 10) : parseInt(parts[1], 10) + 12,
minutes = parseInt(parts[2], 10);
d.setHours(hours, minutes,0,0); // As suggested by @RobG
// d.setHours(hours);
// d.setMinutes(minutes);
console.log(d);
假设您的输入格式为 var time = "7:30 AM"
。
我们要做的第一件事就是让 AM/PM 离开。
time.split(' ')
给我们 ["7:30", "AM"]
,所以我们这样做:
var timePeriod = time.split(' ')[1];
time = time.split(' ')[0];
如有任何问题请参阅MDN's article on .split
我们现在有 timePeriod === 'AM'
和 time === '7:30'
。
我们可以使用相同的技巧来获取小时和分钟。
var hour = time.split(':')[0];
var minute = time.split(':')[1];
只使用数字会更容易,所以我们将在这里对数据进行一些规范化。
if (timePeriod === 'AM') {
// Do not use `hour += 12` here as that will not convert the result to a number
hour = 12 + hour
}
现在我们只有数字可以处理了。让我们从当前日期开始:
var currentDate = new Date();
并修改小时和分钟以匹配我们刚刚解析的数据:
currentDate.setHours(hour);
currentDate.setMinutes(minute);
现在我们应该有一个可以合作的日期了!
*如有任何问题请参阅MDN's article on the Date object******
如何将从 html 中格式为 Hours:Minutes AM/PM 的时间转换为 javascript 中的日期 class 对象。
您可以使用正则表达式解析时间并将其设置为日期对象。
var d = new Date(),
s ='7:30 AM',
parts = s.match(/(\d+)\:(\d+) (\w+)/),
hours = /am/i.test(parts[3]) ? parseInt(parts[1], 10) : parseInt(parts[1], 10) + 12,
minutes = parseInt(parts[2], 10);
d.setHours(hours, minutes,0,0); // As suggested by @RobG
// d.setHours(hours);
// d.setMinutes(minutes);
console.log(d);
假设您的输入格式为 var time = "7:30 AM"
。
我们要做的第一件事就是让 AM/PM 离开。
time.split(' ')
给我们 ["7:30", "AM"]
,所以我们这样做:
var timePeriod = time.split(' ')[1];
time = time.split(' ')[0];
如有任何问题请参阅MDN's article on .split
我们现在有 timePeriod === 'AM'
和 time === '7:30'
。
我们可以使用相同的技巧来获取小时和分钟。
var hour = time.split(':')[0];
var minute = time.split(':')[1];
只使用数字会更容易,所以我们将在这里对数据进行一些规范化。
if (timePeriod === 'AM') {
// Do not use `hour += 12` here as that will not convert the result to a number
hour = 12 + hour
}
现在我们只有数字可以处理了。让我们从当前日期开始:
var currentDate = new Date();
并修改小时和分钟以匹配我们刚刚解析的数据:
currentDate.setHours(hour);
currentDate.setMinutes(minute);
现在我们应该有一个可以合作的日期了!
*如有任何问题请参阅MDN's article on the Date object******