2016-11-24 2 views
1

Привет Я использую следующий код, чтобы форматировать строку датыJavaScript дата конфликт с месяц

var monthNames = ["Jan", "Feb", "Mar", "Apr", 
        "May", "Jun", "Jul", "Aug", 
        "Sep", "Oct", "Nov", "Dec"]; 
var AddedDate = new Date('04/11/2016 11:36:15'); 
alert(AddedDate.getDate() + ' ' + monthNames[AddedDate.getMonth()] + '\'' + AddedDate.getYear()); 

здесь формат даты ввода в формате ДД/ММ/ГГГГ чч: мм: сс Но когда я getDate() это дает дата как 11 и getmonth() дает как Apr. Как я могу исправить это. Пожалуйста помоги. А также есть способ, чтобы получить год как 16 для 2016 года

токовый выход я получаю 11 Apr'116

Ожидаемый результат является 04 Nov'16

+0

Что вы ожидаете получить? – Gacci

+0

Я хочу получить -> 04 Nov'16 – Kanishka

+0

вы действительно хотите использовать http://momentjs.com/ вместо того, чтобы пытаться это сделать – imjosh

ответ

1

в формат строки даты по умолчанию в Javascript - mm/dd/yyyy. Так что в вашем случае считается 11 April 2016. В течение самого месяца функция javascript getMonth() вернет номер месяца в индексе на основе 0. поэтому April == 3. , чтобы получить год 2016 вы должны использовать getFullYear() вместо

, если вы хотите, чтобы заставить JavaScript для получения данных dd/mm/yyyy Вы должны сделать это сами, как это:

var myDate = "04/11/2016".split("/"); 
var AddedDate = new Date(myDate[2], myDate[1] - 1, myDate[0]); 
+0

Хорошо объяснено. Это помогло мне решить. – Kanishka

+0

Рад, что это может помочь. Продолжаем учиться @ Канишка :) – RizkiDPrast

0

Праведный сделать new Date('11/04/2016 11:36:15');

Формат месяц/день/год и т. д.

2

Если вы хотите дату в формате dd/mm/year. Я снял временную часть и разделил строку на массив и создал дату с датой, mont ч и год

Чтобы получить короткий год, я взяли на себя SUBSTR (2,2)

проверки сниппают

var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 
 

 
var dateString = '04/11/2016 11:36:15'; 
 

 
dateString = dateString.split(' ')[0]; 
 

 
var dateParts = dateString.split("/"); 
 

 
var date = dateParts[2]; 
 
var month = dateParts[1] - 1; 
 

 

 
var dateObject = new Date(date, month, dateParts[0]); 
 

 

 
var yearShort = dateObject.getFullYear().toString() 
 
alert(dateObject.getDate() + ' ' + monthNames[dateObject.getMonth()] + '\'' + yearShort);

Надеется, что это помогает

+0

без получения полного года я могу получить только 16? – Kanishka

+0

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

+0

ok ...вы можете получить доступ через год через подстроку – Geeky

0

вы передаете неверный формат даты в new Date(). Формат строки действительной даты указан here.

ISO Дата: "2015-03-25" (Международный стандарт)
Short Дата: "03/25/2015"
Long Дата: «25 марта 2015 "или "25 марта 2015"
Полный Дата: "среда 25 марта 2015"

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