2017-01-06 2 views
1

Я использую JQuery combodate, который возвращает мне строку с датой, как:Javascript преобразовать строку даты в тип DateTime (C#) вопрос формата

dateString = "12-07-2006" 

На мой взгляд Бритва у меня есть:

@Html.HiddenFor(m => m.BirthDate) // BirthDate is a C# variable of type DateTime 

То, что я хочу делать в JS код:

var dateString = $('#date').combodate('getValue'); // like: "12-07-2006" 

    document.getElementById('BirthDate').value = dateString; // format is wrong 

до сих пор я пытался несколько примеров искал подобные темы, но не e из них работает правильно .. Я имею в виду функцию POST после отправки формы, у меня есть ошибка ModelState, что это недопустимое значение для переменной DateTime (Date = {0001-01-01 00:00:00} - это я получаю в методе пост в бэкэнд коде)

+0

Что именно вы хотите сделать, чтобы выровнять формат даты как в модели C#, так и в JS. правильно? –

+0

Я считаю, что вы хотите отформатировать 'dd-mm-yyyy' в' yyyy-mm-dd h: i: s' right? – pistou

+0

НЕТ! У меня есть строка «12-07-2006» в js, а в модели Razor переменная от C# типа DateTime -> Мне нужно назначить это строковое значение и преобразовать способ правильно назначить эту переменную DateTime (C#) в javascript код. –

ответ

1

Из документации combodate:

Все методы можно назвать $ (элемент) .combodate ('метод', параметры).

Вот пример с combodate:

$(function(){ 
 
    var dateString = "12-07-2006" 
 
    $('#BirthDate').combodate('setValue', dateString); 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script> 
 
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
 
<script src="https://cdn.rawgit.com/vitalets/combodate/master/src/combodate.js"></script> 
 

 
<input type="text" id="BirthDate" data-format="DD-MM-YYYY" data-template="D MMM YYYY" name="date">

+0

Я сделал, и мне кажется, что вы хотите установить строку в элемент с id BirthDate, и combodate не принимает его. Можете ли вы уточнить свой вопрос, если это не то, что вам нужно? И перед вызовом ерунды, возможно, добавьте хотя бы вопросительный знак в текст ... – cringe

+0

Я хочу присвоить значение «12-07-2006» в javascript переменной DateTime из моей модели –

+0

Предлагаю изменить свой вопрос и добавить это предложение как вопрос. Возможно, вы также можете добавить еще один тег, чтобы было ясно, что это не вопрос о javascript/jquery в отдельности, а ваша структура C#. – cringe

0

Я предпочел бы вам использовать momentjs, потому что вам нужно формат даты и времени и это самый лучший способ. momentjs позволяет проводить парсинг с указанным часовым поясом.

var momentDate = moment("2014-09-15 09:00:00"); 
and can access the JS date object via 

momentDate().toDate(); 

см. http://momentjs.com/ для получения дополнительных форматов.

+0

Это не решение для того, что я спросил –

+0

, попробуйте отправить значение следующим образом: document.getElementById ('<% = BirthDate%>'). Value = dateString; – Codesingh

+0

Вы не можете назначить значение переменной C#, что вы можете сделать, это получить доступ к значению переменной. – Codesingh

0

Возможно, просто сделайте это вручную без библиотеки, чтобы понять больше этого преобразования, которое вы пытаетесь сделать.

dateString = "12-07-2006"; 
var parts = dateString.split('-'); 
//please put attention to the month (parts[0]), Javascript counts months from 0: 
// January - 0, February - 1, etc 

// parts[0] = 12 and represents the day 
// parts[1] = 7 and represents the month 
// parts[2] = 2006 and represents the year 
var mydate = new Date(parts[2],parts[1]-1,parts[0]); 

И теперь mydate - объект Date, который вы можете нам в вашей модели.

+0

Я пробовал этот, он не работает. В любом случае, вы скопировали этот ответ ... –

+0

Какая ошибка вы получаете при использовании этого и передавая объект Date()? И где вы нашли точный ответ? –

Смежные вопросы