2016-04-13 58 views
0

我有一個名爲Last Modified At的字段,其值爲'2016/04/12 20:24:18'。它不是ISO日期,而是通過MongoDb中的java進程存儲的普通字符串值。 我想寫一個shell腳本來計算'2016年4月12日20時24分18秒'之間的差異,並說'2016年4月12日16:24:18'。差別可能是幾天或幾小時或分鐘或秒。我嘗試了幾件事情,包括轉換爲ISO日期,但它沒有解決。有沒有一種簡單的方法來找出像甲骨文。在MongoDB中計算兩次差異

任何幫助將不勝感激?

感謝, 拉姆

+0

你可以使用你的問題的[編輯]鏈接,包括轉換爲ISO日期的嘗試? – chridam

回答

0

我不完全相信你計劃如何運行shell腳本,但它有可能在蒙戈外殼來解析日期(使用Javascript)和兩個日期,你之間的計算時間問過了。假設我們在things數據庫中的文檔如下:

{ 
    "_id" : ObjectId("570f1e528163383227ace761"), 
    "lastModifiedAt" : "2016/04/12 20:24:18" 
} 

我們可以運行下面的腳本來獲得文件和硬編碼的日期的lastModifiedDate之間的差異,如2016/04/12 16:24:18

db.things.find({}).forEach(function(thing) { 
    var date1 = new Date(thing.lastModifiedAt); 
    var date2 = new Date('2016/04/12 16:24:18'); 
    var dateDiff = date1.getTime() - date2.getTime(); 
    printjson({_id:thing._id,lastModifiedAt:thing.lastModifiedAt,dateDiff:dateDiff}); 
}); 

這導致:

{ 
    "_id" : ObjectId("570f1e528163383227ace761"), 
    "lastModifiedAt" : "2016/04/12 20:24:18", 
    "dateDiff" : 14400000 
} 

其中dateDiff是毫秒,14400000 milliseconds = 4 hours

如果您提供有關如何計劃撥打此電話以及第二次約會來自哪裏的更多信息,我很樂意詳細解答此問題。