我试图提取我们的小时,分钟数,yy-mm-dd,如果从我们使用的API传递的日期字符串中获取上午或下午,则为“ p”。尝试设置本地JS变量。
我有一个通过API(2018-12-31T09:00:00-0600
)传递的字符串响应
我需要向另一个API提交请求,但需要将小时,分钟,日期和上午/下午作为单独的变量传递。
本地JS变量:
var TK_send_date; //yy-mm-dd
var TK_send_hour; //01-23
var TK_send_minute; // 00, 30
var TK_ampm; // AM or PM
API想要这个。
someAPIFunction(hour, minutes, date, ampm);
==更新=========
这里是我所拥有的,只有一部分正在工作。
function bookingSuccess(response) {
console.log("bookingSuccess function called");
TK_Response = response;
local_date = new Date(response.data.start); //2018-12-31T09:00:00-0600
TK_send_hour = local_date.getHours(); // is always 0
TK_send_hour = local_date.getMinutes(); // is always 0
TK_send_date = local_date.toISOString().split('T')[0]; // successfully gets the date yy-mm-dd
if(TK_send_hour < 12) {
TK_ampm = 'AM';
} else {
TK_ampm = 'PM';
}
}
答案 0 :(得分:0)
这是我能为您做的最好的事情。只是很多格式化和方法调用。
block.style.left = (parseFloat(block.style.left) + 0.5075470472) + 'px';
block.style.top = (parseFloat(block.style.top) - 2.956754301) + 'px';
答案 1 :(得分:0)
您的描述中缺少一些细节,例如有关时区的处理方法。如果知道时区,那么您的解决方案就可以了,除了您需要在当地人上使用var
,并且您要在第6行的分钟起设置小时。由于您的第二个API需要AM / PM,所以我猜也是需要12小时,所以您需要调整小时。
如果您想要的解决方案不是时区幼稚的,则可以使用regular expression从数据中提取所需的字段,并将其返回到字典中。
/* Parse date expected in format 2018-12-31T09:00:00-0600
@param string The date to be parsed.
@return Dictionary with values in keys, or null on bad data. */
function parse_date (string) {
var pattern = /(\d\d\d\d-\d\d-\d\d)T(\d\d):(\d\d):(\d\d)-(\d\d\d\d)/;
var matches = pattern.exec (string);
if (matches == null) return null;
var hr24 = parseInt (matches [2]);
return {
'date': matches [1],
'hour': hr24 == 0 ? 12 : hr24 > 12 ? hr24 - 12 : hr24,
'ampm': hr24 < 12 ? "am" : "pm",
'minute': parseInt (matches [3])
}
}
console.log (parse_date ("2018-12-31T09:27:00-0600"))
console.log (parse_date ("2018-12-31T14:29:00-0500"))
console.log (parse_date ("2018-12-31T00:29:00-0500"))
console.log (parse_date ("2018-12-31T12:29:00-0500"))
console.log (parse_date ("2018-12-31T13:29:00-0500"))
console.log (parse_date ("2018-12-31Tbjdfjdkfj0600"))
这将输出:
{ date: '2018-12-31', hour: 9, ampm: 'am', minute: 27 }
{ date: '2018-12-31', hour: 2, ampm: 'pm', minute: 29 }
{ date: '2018-12-31', hour: 12, ampm: 'am', minute: 29 }
{ date: '2018-12-31', hour: 12, ampm: 'pm', minute: 29 }
{ date: '2018-12-31', hour: 1, ampm: 'pm', minute: 29 }
null
答案 2 :(得分:0)
下面,我创建了一个非常简单的time实用程序对象。应该可以满足您的需求,这很简单。要在代码中使用此代码,您可以将Date.now()
的{{1}}参数替换为TimeUtil
。
response.data.start