将文本转换为日期对象

时间:2016-12-03 19:58:04

标签: javascript php string-conversion

我想要的是可以轻松地将字符串“5分钟前”或字符串“10小时前”转换为javascript日期对象。

Date.parse需要一个日期字符串,我相信该功能不符合我的要求。

在PHP中,我可以这样做:

代码

$string = "5 minutes ago";
$now = date('Y-m-d H:i:s');
$d = strtotime($now . " + " . str_replace("ago","",$string));
echo "Current time: " . $now;
echo "<br>";
echo "Altered time: " . date('Y-m-d H:i:s',$d);

输出

Current time: 2016-12-03 20:56:33
Altered time: 2016-12-03 21:01:33

如何将字符串“5分钟前”或“10小时前”转换为javascript日期对象?

1 个答案:

答案 0 :(得分:0)

使用正则表达式来识别您在表单中有某些内容&#34; X单位前&#34;,将单位转换为毫秒,乘以X(将X从字符串转换为数字后),然后减去该数字从将当前时间转换为字符串之前的当前时间开始的毫秒数。

then = new Date((new Date())-60000)

将使then成为60秒前

如果s是字符串&#34; 5分钟前&#34;然后

var m = s.match(/(\d+) ((minutes)|(seconds)|(hours)) ago/)

应该为您提供m数组,以便m[1]是一个包含一个或多个数字的字符串,在这种情况下"5"m[2]将是其中之一字符串&#34;分钟&#34;,&#34;秒&#34;,或&#34;小时&#34;。