Следующий код возвращает $("#dob")
и $("#anniversery")
дату как 2014-04-01T00:00:00
Мой код
<script>
$(function() {
function log(message) {
$("<div>").text(message).prependTo("#log");
$("#log").scrollTop(0);
}
$("#customerName").autocomplete({
source: function(request, response) {
$.ajax({
url: "ajaxCustomer",
dataType: "json",
data: {
str: $("#customerName").val(),
maxRows: 12
},
success: function(data) {
response($.map(data.customerList, function(item) {
console.log(item);
return {
label: item.customerName,
value: item.customerName,
id: item.customerId,
address: item.address,
dob: item.dob,
mobno: item.mobno,
annversery: item.anniversery
}
}));
},
error: function(data) {
alert(data.supplierList);
console.log(typeof data);
console.log(data);
alert('error');
}
});
},
minLength: 1,
select: function(event, ui) {
$("#customerId").val(ui.item.id);
$("#mobNo").val(ui.item.mobno);
$("#address").val(ui.item.address);
$("#dob").val(ui.item.dob);
$("#anniversery").val(ui.item.annversery);
},
open: function() {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function() {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
});
});
</script>
Я хочу $ ("# dob") и $ ("# anniversery") его значение в формате yyyy/mm/dd
Как это сделать
Я пробовал $("#dob").val(format_date(ui.item.dob));
function format_date(dt) {
var dd = dt.getDate();
var mm = dt.getMonth() + 1; //January is 0!
var yyyy = dt.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
if (mm < 10) {
mm = '0' + mm;
}
dt = mm + '/' + dd + '/' + yyyy;
document.write(dt);
document.write(year + '/' + month + '/' + day);
}
Это не работает.
Вы должны ui.item.dob
значение, которое вы получаете от ui.item.dob
до даты.
var datefield = new Date(ui.item.dob);
$("#dob").val(format_date(datefield));
Затем в вашей функции format_date
удалите лишнюю строку внизу и вместо этого поставьте оператор return:
function format_date(dt) {
var dd = dt.getDate();
var mm = dt.getMonth() + 1; //January is 0!
var yyyy = dt.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
if (mm < 10) {
mm = '0' + mm;
}
dt = mm + '/' + dd + '/' + yyyy;
return dt;
}
Вы можете использовать MomentJS
Применить формат:
$("#anniversery").text(moment(ui.item.annversery).format('YYYY/MM/DD'));
попробуй это..
var thisDate = "2013-01-01 00:00:00";
var thisDateT = thisDate.substr(0, 10);
var date = "2014-04-01T00:00:00";
var newDate = date.split("T")[0].replace(/-/g, "/");
console.log(newDate);
=> 2014/04/01
Как уже указывалось @display_name, вы пропустили синтаксический анализ даты. Здесь более упрощенная версия вашего кода:
function format_date(dt) {
var dateString = new Date(dt); //parse the date
var formatedDate = dateString.getFullYear() + "/" +
('0'+ (dateString.getMonth() +1)).slice(-2) + "/" +
('0'+ dateString.getDate()).slice(-2);
return formatedDate; //return the formatted date to the input field
}
Теперь вы можете
$("#dob").val(format_date(ui.item.dob)); // incase if it is a textbox
Вы должны создать новый объект Date перед использованием функций get:
var date = new Date(dt);
И тогда вы можете получить правильные значения:
var dd = date.getDate();
и так далее.