2016-06-08 34 views
0

我一直試圖解決這個語法錯誤一段時間,似乎無法弄清楚。 DateTime是否不返回可以被CGI.escape解釋的對象?....根據我在DateTime文檔中讀到的內容,我的代碼看起來應該可以工作。傳遞給CGI時的DateTime語法錯誤

錯誤

getTimes.rb:6: syntax error, unexpected tIDENTIFIER, expecting ')' 
endTime=CGI.escape(DateTime.new(2016, 6, 24, 8, 21, 0, ‘+5’)) 

代碼:

require 'cgi' 
require 'date' 
#new([year=-4712[, month=1[, mday=1[, hour=0[, minute=0[, second=0[, offset=0[, start=Date::ITALY]]]]]]]]) → datetime 
startTime=DateTime.now 
#startTime=CGI.escape(DateTime.new(2015, 12, 24, 8, 21, 0, ‘+5’)) 
endTime=CGI.escape(DateTime.new(2016, 6, 24, 8, 21, 0, ‘+5’)) 

puts startTime 
puts endTime 

我使用Ruby 2.3,如果它改變的東西。

回答

1

的問題是你傳遞到DateTime.new的最後一個參數:

endTime=CGI.escape(DateTime.new(2016, 6, 24, 8, 21, 0, ‘+5’)) 

此:‘+5’應該是這樣的:'+5'

當人們使用通用文本編輯器(例如OS X上的TextEdit)時,會自動將引號轉換爲「智能引號」,我發現此問題出現很多。最好的解決方案是切換到編程的編輯器(如SublimeText或OS X上的Atom)。同時,確保在任何編輯器中關閉「智能引號」和其他自動文本更正/替換。

1

你爲什麼用'?嘗試直單引號'