{"status":true,"data":[{"_id":"5addb7cbcd79850454bceb9f","no":12123,"orDate":"2010-01-01T00:00:00.000Z","oldness":"5"},{"_id":"5ae02a26de15e934ac70ee8f","no":11223,"orDate":"2004-01-01T00:00:00.000Z","oldness":"5"},{"_id":"5ae02a26de257934ac70ee8f","no":12311,"orDate":"1994-01-01T00:00:00.000Z","oldness":"5"}]}
Это мой ответ json. Мне нужно напечатать только год от orDate в vue js html.
Как я могу добиться того же.
Мой html-код
<div id = "app">
<div v-for = "aln in data">
{{aln._id}}
{{aln.no}}
{{aln.orDate}}
</div>
</div>
Я или дата, мне нужно напечатать только год от даты. Если дата 2010-01-01T00: 00: 00.000Z, мне нужно напечатать только 2010
Мой код vue js
app = new Vue({
el: "#iapp",
data: {
data:[],
},
mounted: function() {
var vm = this;
$.ajax({
url: "http://localhost:4000/get/l/",
method: "GET",
dataType: "JSON",
success: function(e) {
if (e.status == 1) {
vm.data = e.data;
console.info(vm.data);
}
},
});
},
})



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Поскольку у вас есть правильно сформированная строка даты, вы можете инициализировать объект даты из строки и вызвать для него getFullYear():
var date = new Date("2010-01-01T00:00:00.000Z");
console.info(date.getUTCFullYear());Вы можете попробовать создать такой ключ года в коллекции и использовать его в шаблоне:
success: function(e) {
if (e.status == 1) {
vm.data = e.data;
vm.data.forEach(item => {
var date = new Date(item.orDate);
item.year = date.getUTCFullYear();
});
...
}
В вашем шаблоне вместо orDate покажите year.
{{aln.year}}
Изменить 1:
Поскольку @bbsimonbb указал на проблему с getFullYear(), я обновил свой код, чтобы вместо этого использовать getUTCFullYear().
@bbsimonbb - Спасибо. Я обновил свой код, чтобы решить эту проблему.
Я думаю, у вас есть 2 варианта:
"2010-01-01T00:00:00.000Z".slice(0,4)new Date("2010-01-01T00:00:00.000Z").getFullYear()вы можете просто дать вот так.
<div id = "app">
<div v-for = "aln in data">
{{aln._id}}
{{aln.no}}
{{new Date(aln.orDate).getFullYear()}}
</div>
</div>
как отобразить только 2000-10-01 с этой даты
@BegCoder, для этого вы можете использовать. {{aln.orDate.toString().slice(0,10)}}
ОСТЕРЕГАЙТЕСЬ ЧАСОВОГО ПОЯСА. Принятый ответ попадает в ловушку! Установите часовой пояс устройства на минус (к западу от Лондона), и вы получите 2009 год.
Безусловно, самый безопасный способ восстановить год из строки даты ISO - это .substring(0,3). Если вы хотите преобразовать дату в объект даты, отформатировать ее, сравнить или выполнить арифметику, вам нужно быть очень осторожным, чтобы избежать получения часового пояса при сериализации / отображении.
getFullYear()«услужливо» определит местный часовой пояс. Где-нибудь к западу от Лондона 2010 года еще не наступит, а вы должны увидеть 2009 год?