2011-10-16 102 views
0

我正在一個javascript新的Date(),並試圖將其格式化爲像這樣的字符串:的javascript格式日期obj轉換爲YYYY-MM-DD HH:MM:SS返回NAN-NAN-NAN

YYYY- MM-dd hh:mm:ss

然後將其插入到SQLite數據庫中。我正在使用Appcelerator(1.7.2),它使用JS的Mozilla Rhino引擎。

下面是函數:

date.DateToSQLite = function(date){ 
if (date == null){ 
    return null; 
} else if (date instanceof Date == false){ 
    throw "not a date Object value:" + date; 
}; 
var result = date.getUTCFullYear(); 
result += '-'; 
if (date.getUTCMonth() < 9){ 
    result += '0'; 
} 
result += date.getUTCMonth() +1; 
result += '-'; 
if (date.getUTCDate() < 10){ 
    result += '0'; 
} 
result += date.getUTCDate(); 
result += ' '; 
if (date.getUTCHours() < 10){ 
    result += '0'; 
} 
result += date.getUTCHours(); 
result += ':'; 
if (date.getUTCMinutes() < 10){ 
    result += '0'; 
} 
result += date.getUTCMinutes(); 
result += ':'; 
if (date.getUTCSeconds() < 10){ 
    result += '0'; 
} 
result += date.getUTCSeconds(); 
result += '.'; 
if (date.getUTCMilliseconds() < 100){ 
    result += '0'; 
} 
if (date.getUTCMilliseconds() < 10){ 
    result += '0'; 
} 
result += date.getUTCMilliseconds(); 

//Ti.API.info('date.DateToSQLite result:' + result + ' date:' + date); 

return result; 

};

我不能自己重新創建這個功能,該功能似乎總是適用於我,但某些客戶端的數據庫顯示NAN-NAN-NAN NAN:NAN:NAN.NAN,這可以持續長達40分鐘,然後它再次開始工作。

這裏是從SQLite數據庫如在Navicat觀察的字段的屏幕截圖:

Showing errors in Database

Showing design view of database

罐date.getUTCHours()或date.getUTCMinutes()的返回NAN:NAN ?

我必須使用UTC嗎?我的客戶在中東。

這是在iOS/iPad2設備上運行的Titanium Appcelerator應用程序。

+1

NaN NaN NaN NaN蝙蝠俠! – grapefrukt

回答

0

雖然代碼是有點......噁心的......這是不可能的任何工作 JavaScript的Date對象從「getTimePart」方法返回楠:

  1. 確保客戶端(S )正在使用預期的代碼(不是舊版本),並且;
  2. 確保客戶端沒有絕對的JavaScript實現,並且;
  3. 沒有隱晦 - 例如定製 - 在所述時髦的客戶端上使用「日期」對象

也可能是所述環境破壞了「getUTCTimePart」方法;可以使用非UTC組件重複症狀嗎?

快樂編碼。

相關問題