2016-12-03 161 views
0

我想要的是以簡單的方式將字符串「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 

我怎麼能轉換〜應變g「5分鐘前」或「10小時前」轉換爲javascript日期對象?

+0

可能重複[等效於PHP的strtotime()?](http://stackoverflow.com/questions/4048204/javascript-equivalent-of-phps-strtotime) – Dekel

+0

似乎是一個X/Y問題,你可能有東西可以輸出這些字符串並進行轉換,那麼很少有任何需要對其進行反向工程的情況? – adeneo

回答

0

使用一個正則表達式來識別你有一些形式爲「X單位前」,將單位轉換爲毫秒,乘以X(將X從一個字符串轉換爲數字後),然後從該單位中減去該毫秒數將當前時間轉換爲字符串之前的當前時間。

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

會讓then 60秒前

如果s是字符串「5分鐘前」然後

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

應該給你m作爲一個陣列,使得m[1]是一個字符串,一個或多個數字的序列,在這種情況下,"5"m[2]將是字符串「分鐘」,「秒」或「小時」之一。