Как извлечь только год из даты в vue js html и распечатать только этот год?

{"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);
            }           
            },
        });
},
})
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
1 835
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Поскольку у вас есть правильно сформированная строка даты, вы можете инициализировать объект даты из строки и вызвать для него 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().

ОСТЕРЕГАЙТЕСЬ ЧАСОВОГО ПОЯСА. getFullYear() «услужливо» определит местный часовой пояс. Где-нибудь к западу от Лондона 2010 года еще не наступит, а вы должны увидеть 2009 год?
bbsimonbb 25.04.2018 11:01

@bbsimonbb - Спасибо. Я обновил свой код, чтобы решить эту проблему.

31piy 25.04.2018 14:06

Я думаю, у вас есть 2 варианта:

  1. "2010-01-01T00:00:00.000Z".slice(0,4)
  2. 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 с этой даты

user9372648 25.04.2018 10:40

@BegCoder, для этого вы можете использовать. {{aln.orDate.toString().slice(0,10)}}

Deepu Reghunath 25.04.2018 11:03

ОСТЕРЕГАЙТЕСЬ ЧАСОВОГО ПОЯСА. Принятый ответ попадает в ловушку! Установите часовой пояс устройства на минус (к западу от Лондона), и вы получите 2009 год.

Безусловно, самый безопасный способ восстановить год из строки даты ISO - это .substring(0,3). Если вы хотите преобразовать дату в объект даты, отформатировать ее, сравнить или выполнить арифметику, вам нужно быть очень осторожным, чтобы избежать получения часового пояса при сериализации / отображении.

Чтобы сделать это безопасно, используйтеgetUTCFullYear()

Другие вопросы по теме