Как вставить пробел между двумя значениями при использовании транспортира?

Я создаю сценарий для ввода даты в какое-то конкретное поле, требуемый формат - MMM DD, YYYY, поскольку вы можете видеть, что формат имеет 2 пробела: один между названием месяца и датой, а другой между запятой и годом. Я искал так много мест и пробовал код ниже, но он возвращает значение как NaN, 2018 г., мой код указан ниже -

this.getCurrentDate = function () {
    var d = new Date();
    var currentDate = d.getDate();
    var currentMonth = d.getMonth()+1;
    var currentYear = d.getFullYear();
    if (currentDate < 10){
        currentDate = '0'+currentDate;
      }
    if (currentMonth < 10){
      currentMonth = '0'+currentMonth;
      } 
    var today = currentMonth + '\xa0' + currentDate-1 + ',' + '\xa0' +  currentYear;
    console.info(today);
    return today;

};
Поведение ключевого слова "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
107
2

Ответы 2

Ваша проблема связана с этой строкой кода:

var today = currentMonth + '\xa0' + currentDate-1 + ',' + '\xa0' +  currentYear;

Итак, ранее вы установили эти две переменные в строки:

if (currentDate < 10){
    currentDate = '0'+currentDate;
  }
if (currentMonth < 10){
  currentMonth = '0'+currentMonth;
  } 

В переменной today в currentDate вы пытаетесь вычесть целое число 1 из строки. Следовательно, NaN (не число).

Спасибо, исправили.

Saket Srivastava 07.06.2018 10:27

Не волнуйся, рад, что смог помочь. :)

user5283119 07.06.2018 10:30

Вы вычитаете 1 из строки, которая вызывает ошибку.

        this.getCurrentDate = function () {
        var d = new Date();
        var currentDate = d.getDate();
        var currentMonth = d.getMonth()+1;
        var currentYear = d.getFullYear();
        if (currentDate < 10){
            currentDate = '0'+currentDate;
          }
        if (currentMonth < 10){
            currentDate--;  //Fixed here.
          currentMonth = '0'+currentMonth;
          } //removed -1 from current date

        var today = currentMonth + '\xa0' + currentDate + ',' + '\xa0' +  currentYear;
        console.info(today);
        return today;

    };

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

Это не будет работать круглый год, если вы не вычитаете 11-й месяц из числа. Лично я бы сделал отдельные функции для выполнения вашей логики, а затем вернул бы строку, которую вы можете просто вызвать в функции getCurrentDate и вернуть дату в виде строки.

user5283119 07.06.2018 10:36

Привет, Майк, да, я уже исправляю эту вещь, обязательно опубликую здесь в ответ, как только закончу.

Saket Srivastava 07.06.2018 13:38

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