[英]How can I determine if a user has included a time in a single input/string?
我要求用户在一个字段中键入会议描述。 当用户在此输入中包含时间时,我想智能地猜测/解析,以免他们必须填写单独的时间输入字段。
Google日历使用此类解析来预填充时间字段。
示例输入:
我会感激任何帮助!
我知道你要求一个JS解决方案,但我在PHP中编写了一些代码,您可能需要检查并查看逻辑是否可以帮助您完成项目。
<?php
$string1 = "Meet at Burger King at 2:30";
$string2 = "Denny's 2pm";
$string3 = "I want to buy 2 phones at 1";
print iterateString($string1). "- It should return 2:30<br>";
print iterateString($string2). "- It should return 2pm<br>";
print iterateString($string3). "- It should return 1:00<br>";
function isTime($date, $formats=array("H:i","G:i","Ha","ha", "Ga", "ga")) {
foreach($formats as $format) {
$d = DateTime::createFromFormat($format, $date);
$fd = $d ? $d->format($format) : false;
if ($d && $fd == $date) {
return $fd;
}
}
return false;
}
function iterateString($string) {
$singleTime = false;
$words = explode(" ",$string);
foreach($words as $word) {
if ($singleTime && ctype_digit($word)) {
$word = $word . ":00";
}
if($time = isTime($word)) {
return $time;
}
if($word == 'at') {
$singleTime = true;
} else {
$singleTime = false;
}
}
return "error";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.