用本地语言添加月份功能

时间:2018-05-08 08:58:00

标签: javascript datetime

我有这个功能可以打印出推文中的日期或分钟/小时。它工作正常,但日期是英文。如何将月份更改为例如西班牙语吗?日期格式是固定的 - 它来自Twitter API。 它看起来像这样:

var $time = "Fri May 04 20:33:17 +0000 2018";

function relative_time(time_value) {
      // How can I apply these months to the function?
      //var months = Array('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');

      var values = time_value.split(" ");
      time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
      var parsed_date = Date.parse(time_value);
      var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
      var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
      var shortdate = time_value.substr(4, 2) + " " + time_value.substr(0, 3);
      delta = delta + (relative_to.getTimezoneOffset() * 60);

      if (delta < 60) {
        return '1m';
      } else if (delta < 120) {
        return '1m';
      } else if (delta < (60 * 60)) {
        return (parseInt(delta / 60)).toString() + 'm';
      } else if (delta < (120 * 60)) {
        return '1h';
      } else if (delta < (24 * 60 * 60)) {
        return (parseInt(delta / 3600)).toString() + 'h';
      } else if (delta < (48 * 60 * 60)) {
        //return '1 day';
        return shortdate;
      } else {
        return shortdate;
      }
    }

查看Fiddle here

3 个答案:

答案 0 :(得分:0)

var date = new Date('Fri May 04 20:33:17 +0000 2018');
var months= ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];
var outDate= date.getDate()+ ' '+ months[date.getMonth()];

答案 1 :(得分:0)

with moment.JS:viernes,4 de mayo de 2018 22:33

const $time = "Fri May 04 20:33:17 +0000 2018";

const myDate = new Date($time);
const myMoment = moment(myDate);

document.body.innerHTML = myMoment.format('LLLL');
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/locale/es.js"></script>

答案 2 :(得分:0)

var $time = "Fri May 04 20:33:17 +0000 2018";

function relative_time(time_value) {
    var date = new Date(time_value);
    var months= ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 
    'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];
    return date.getDate()+ ' '+ months[date.getMonth()];
   }

relative_time($time);

这会回答你的问题吗?