我正在尝试将博客日期从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/
网站日期更改后的图像:
答案 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);
用于安装Moment.js的命令列表