Date.parse (4/2/2011 9:34:48 AM) - PullRequest
       2

Date.parse (4/2/2011 9:34:48 AM)

1 голос
/ 18 февраля 2011

мой ввод будет из переменной (Ticket.CreationDate) и будет выглядеть следующим образом:

2/4/2011 9:34:48 AM (конечно, это будет отличаться)

В идеалеЯ мог бы передать переменную как есть и получить разные результаты, такие как unknownDateFunc (Ticket.DateCreation) \ Outputs = пятница, 4 февраля 2011 г. unknownTimeFunc (Ticket.DateCreation) \ Outputs = 9:34 AM

Вмешательствос Date.parse () и .toDateString (), и я просто не могу понять это.

Решено: с использованием Метод Стива Левитана

var datevar = dateFormat(TicketList.Tickets[Ticket].CreationDate.split(" ", 1), "fullDate"); 
// without .split(" ",1) it displayed as "Thu, Feb 24, 2011 00:00" I don't know why
var timevar = dateFormat(TicketList.Tickets[Ticket].CreationDate, "shortTime");

Ответы [ 3 ]

3 голосов
/ 18 февраля 2011

Тот факт, что у вас есть статический формат, делает решение простым.

var dateReg = 
    /(\d{1,2})\/(\d{1,2})\/(\d{4})\s*(\d{1,2}):(\d{2}):(\d{2})\s*(AM|PM)/;
function parseDate(input) {
    var year, month, day, hour, minute, second,
        result = dateReg.exec(input);
    if (result) {
        year = +result[3];
        month = +result[1];
        day = +result[2];
        hour = +result[4];
        minute = +result[5];
        second = +result[6];
        if (result[7] === 'PM' && hour !== 12) {
            hour += 12;
        }       
    }
    return new Date(year, month, day, hour, minute, second);
}
3 голосов
/ 18 февраля 2011

Я бы предложил комбинацию из двух разных библиотек дат, которые мне известны.

Первым для анализа даты из строки является DateJS. Вы можете найти его в http://www.datejs.com/. Ваш пример разбирает их штраф в библиотеке (если вы добавите соответствующие кавычки)

// Results in Date object whose toString is:  
//    Fri Feb 04 2011 09:34:48 GMT-0600 (Central Standard Time)
Date.parse('2/4/2011 9:34:48 AM')

Другая библиотека предназначена для создания красиво отформатированных строковых значений на основе вашего объекта даты. Это можно найти на http://blog.stevenlevithan.com/archives/date-time-format. Например, с этой страницы:

// Saturday, June 9th, 2007, 5:46:21 PM
var now = new Date();
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");
0 голосов
/ 24 февраля 2011

Создайте функцию, которая принимает в качестве параметра строку даты, строки в формате и строки в формате

string FormatDate(string date, string informat,string outformat)
{
    var culture = CultureInfo.CreateSpecificCulture("en-US");
    return DateTime.ParseExact(date, informat, culture).ToString(outformat);
}

FormatDate("2/4/2011 9:34:48 AM","M/d/yyyy H:m:s tt","H:m:s")               //9:34:48

Вы можете получить строку другого формата из здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...