我需要转换成“1小时9分钟”之类的东西;PHP中的秒数
I need to convert something like "1 hour 9 mins" to seconds in PHP
我正在编写一个基于谷歌API的在线导航应用程序,需要对文本到语音和弹出窗口进行定时。
这是我的情况:我得到像"在15号路口,出口到M4向伦敦(109英里,1小时41分钟)"这样的字符串,需要提取"1小时41分钟"部分并将其转换为秒,谷歌告诉我是6060秒。有人能帮忙吗?
我还需要提取"109英里"部分(可能是"0.3英里",或"16英尺")。我不知道该怎么做。我可以做Ajax和API的东西,我只需要距离和时间的秒(JavaScript的setTimeout)。
使用JavaScript提取数据,您可以使用string.match(/'(('d+) mi, (.*)')/)
,其中string
是您返回的字符串。
在这种情况下,这将得到一个包含119
的[1]和1 hour 41 min
的[2]的数组。然后,您可以将它ajax到服务器,并做您需要做的事情。
也许一个更好的正则表达式是 string.match(/'(('d+) (mi|ft), (.*)')$/)
,现在你知道第一个数字是mi还是ft。
PHP可以将字符串转换为秒:
strtotime("1 hour 9 minutes") - time();
有很多方法可以做到这一点,包括使用基于stripos(x,y) &只有Substr (x,y),加上一个修剪的东西来删除空白…
函数如下:
function extract_unit($string, $start, $end)
{
$pos = stripos($string, $start);
$str = substr($string, $pos);
$str_two = substr($str, strlen($start));
$second_pos = stripos($str_two, $end);
$str_three = substr($str_two, 0, $second_pos);
$unit = trim($str_three);
return $unit;
}
点击这里阅读更多。
在你的情况下使用的例子:
$text = '1 hour 9 mins';
$hours = (int)extract_unit($text, '', 'hour'); // Returns 1
$mins = (int)extract_unit($text, 'hour', 'mins'); // Returns 9
$secs = ($hours*3600) + ($mins*60); // Returns 4140
相关文章:
- 使用Javascript将PHP转换为HTML5
- 如何将JSON从PHP转换为JS
- 将PHP转换为JavaScript,自调用函数
- 从sqlite PHP转换数据
- 注意:将数组从 php 转换为 javascript 时出现数组到字符串的转换错误
- 使用 PHP 转换 SQL 时间
- 如何将其从PHP转换为JavaScript
- 将数组从php转换为javascript
- php转换为javascript并返回
- 将jsonencode php转换为javascript,但不要使用双引号
- 将PHP转换为javascript #1
- 将逗号php转换为javascript
- 用PHP转换知名文本(WKT)从MySQL到谷歌地图多边形
- 将javascript数组从PHP转换为javascript函数
- 通过PHP转换XML &Javascript函数
- 将数学方程式从PHP转换为Javascript (Jquery)
- 使用php转换为json
- 如何将格式日期从PHP转换为Javascript
- 如何将这个PHP转换为express.js/node
- 用于转换从 PHP 转换的序列号的 JavaScript 代码