Вы приняли ответ, но можно использовать более простое регулярное выражение:
function stringToDate(s) {
s = s.split(/[-: ]/);
return new Date(s[0], s[1]-1, s[2], s[3], s[4], s[5]);
}
alert(stringToDate('2011-7-15 20:46:3'));
Конечно, входная строка должна иметь правильный формат.