如何将日期格式从MM / DD / YYYY转换/更改为月份日期,年份?

时间:2019-05-27 04:52:30

标签: javascript date calendar blogs converters

我正在尝试将博客日期从MM / DD / YYYY转换/更改为“月日期,年份”。例如,将此日期11/12/2018转换为2018年11月12日。是否有办法正确执行此操作?

我尝试了一个可以正常工作的代码。但是,该代码将每个博客文章的日期转换/更改为最近发布的文章的日期。

我尝试了以下代码:

var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var data = $('.date-text').text();
var arr = data.split('/');
$(".date-text").html(months[parseInt(arr[0]) - 1] + " " + arr[1] + ", " + arr[2]);

并且代码将所有日期转换为最近发布的帖子的日期,现在显示为2018年11月12日11。

工作编辑器:https://jsfiddle.net/s1b2fenk/

网站日期更改后的图像:

enter image description here

5 个答案:

答案 0 :(得分:0)

这是因为有许多具有相同类名的div,当您执行$('.class-name').html()时,它将更改所有具有相同类名的div。您可以尝试从服务器获取数据时提供不同的类或更改json的内容。

答案 1 :(得分:0)

  

这是通过使用纯JavaScript和jQuery实现的。此代码不   需要除jquery之外的任何其他库。

    $this->Category->find('all',[
        'joins' => [
            [
                'table' => 'Manufacturers',
                'alias' => 'Manufacturers',
                'type' => 'LEFT',
                'conditions' => [
                    'Category.Cat_ID = Manufacturers.Cat_ID'
                ]
            ],
            [
                'table' => 'Model',
                'type' => 'LEFT',
                'conditions' => [
                    'Model.CAR_ID = Manufacturers.CAR_ID'
                ]
            ]
        ],
        'conditions' => [
            'Category.Cat_ID' => 1
        ]
    ]);
  

这是javascript:

<div class="date-text-1">
11/12/2018
</div>

<div class="date-text-2">
10/1/2018
</div>
<div class="Converted-1">

</div>
<div class="Converted-2">

</div>

答案 2 :(得分:0)

您的问题是在jQuery中

$(".date-text").html(...);

.date-text 选定的所有元素的HTML更改为相同的值,以便它们最终都显示相同的日期。

您可以使用jQuery的 .each 方法,例如:

$(".date-text").each(function (){
  var months = ["January", "February", "March", "April",
                "May", "June", "July", "August",
                "September", "October", "November", "December"];
  var arr = this.textContent.split('/');
  this.textContent = months[parseInt(arr[0]) - 1] + " " + arr[1] + ", " + arr[2];
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="date-text">11/12/2018</div>
<div class="date-text">10/1/2018</div>

您可能会发现使用POJS更简单:

window.addEventListener('DOMContentLoaded', function () {
  document.querySelectorAll('.date-text').forEach(el => el.textContent = formatDateString(el.textContent))
}, false);

function formatDateString(s) {
  var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
  var arr = s.split('/');
  return months[arr[0] - 1] + " " + arr[1] + ", " + arr[2];
}
<div class="date-text">11/12/2018</div>
<div class="date-text">10/1/2018</div>

答案 3 :(得分:-1)

您知道moment.js或date-fns吗?这将为您完成。

无论如何,您的问题肯定来自“数据”的计算方式。 (并且代码摘录中没有对此进行说明)。您可以console.log(data,arr)检查它们的值。

答案 4 :(得分:-1)

var date = moment('2016-01-01').format('LL')
alert(date);

Check out here

用于安装Moment.js的命令列表

  1. npm安装时刻-保存#npm
  2. 纱线添加时刻#纱线
  3. Install-Package Moment.js#NuGet
  4. 更高的安装时间--save#bower(已弃用)