Конвертировать дату из строки в JavaScript - PullRequest
0 голосов
/ 15 июня 2011

Мне нужно преобразовать дату в строковом формате, например, «2011-05-12 16: 50: 44.055», в количество миллисекунд с полуночи 1 января 1970 года в формате даты в Javascript

Ответы [ 4 ]

1 голос
/ 14 июля 2011

Это работает везде, включая Safari5 и Fx5 на OSX

ДЕМО ЗДЕСЬ

Без миллисекунд:

var date_test = new Date("2011-07-14 11:23:00".replace(/-/g,"/"));

С миллисекундами в отметке времени

var timestamp = "2011-05-12 16:50:44.055";
var dateParts = timestamp.split(".");
var date_test = new Date(dateParts[0].replace(/-/g,"/"));
var millisecs = date_test.getTime()+parseInt("1"+dateParts[1]);
alert(millisecs+"\n"+new Date(2011,4,12,16,50,44,55).getTime());
1 голос
/ 15 июня 2011

Чтобы обеспечить правильное поведение между браузерами, я думаю, что вы должны проанализировать строку самостоятельно.Я сформировал этот ответ в:

function msFromString(dateAsString)
{
    var parts = dateAsString.match(/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2}).(\d{3})/);

    return new Date(parts[1],
                    parts[2] - 1,
                    parts[3],
                    parts[4],
                    parts[5],
                    parts[6],
                    parts[7]).getTime();
}

console.log(msFromString("2011-05-12 16:50:44.055"));

Это выводит 1305211844055.

0 голосов
/ 15 июня 2011

Создание объекта Date из строки даты и использование метода getTime () для получения миллисекунд с 1 января 1970 года. http://www.w3schools.com/jsref/jsref_obj_date.asp

var date = new Date("2011-05-12 16:50:44.055");
document.write(date.getTime());
0 голосов
/ 15 июня 2011

Вы пробовали метод Date.parse()?Он должен распознавать этот формат (хотя я не проверял это).Возвращаемое значение должно быть числом миллисекунд с 01 января 1970 года.

...