jquery 将日期格式更改为dd/MM/yyyy

5t7ly7z5  于 2023-01-08  发布在  jQuery
关注(0)|答案(4)|浏览(141)

任何人都知道如何调整当前的JS代码,使[ItemDate]以dd/MM/yyyy格式显示日期,而不是默认格式:年/月/日时:分:秒
代码是从一个将XML转换为可读HMTL格式的网站复制的...麻烦的只是date.格式,我发现很难实现更改。

<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>  
<script type="text/javascript">  
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({  
  Templates: {  
           Fields: {  
                'ItemsOverview': {   
                    'View': repeatingSectionViewTemplate  
                 }  
           }  
  }  
});  

function repeatingSectionViewTemplate(ctx) {  
   var xml = ctx.CurrentItem["ItemsOverview"];  
   var decodedxml = xml.DecodeXMLNotation();   
   var htm = "";  

   xmlDoc = $.parseXML( decodedxml );  
   $xml = $( xmlDoc );  
   $xml.find("Item").each(function() {  
      htm = htm + "<tr><td width='50px'>" + $(this).find("ItemNumber").text() + "</td><td width='140px'>" + $(this).find("ItemDescription").text() + "</td><td width='70px'>" + $(this).find("ItemStatus").text() + "</td><td>" + $(this).find("ItemDate").text()
 +"</td><td>" + $(this).find("CollectedByUser").text() +"</td></tr>"; 
   });  

   return "<table border='1px' width='550px'  style='border-collapse:collapse;'><tr><th align='left' width='50px'>Item</th><th align='left' width='180px'>Description</th><th align='left' width='70px'>Status</th><th align='left' width='70px'>Date</th><th align='left' width='170px'>Collected By</th></tr>" + htm +"</table>";  
};  

//Replaces html notation to their equivalent xml escape characters.  
String.prototype.DecodeXMLNotation = function () {  
   var output = this;  
    if ($.trim(output) != "") {  
        output = output.replace(/&apos;/g, "'").replace(/&quot;/g, '"').replace(/&gt;/g, '>').replace(/&lt;/g, '<').replace(/&amp;/g, '&');  
    }  
    else {  
        output = "";  
    }  
    return output;  
};  

</script>
cqoc49vn

cqoc49vn1#

你必须创建一个函数来为你重新设置日期的格式。

function formatDate(dateStr) {
    const d = new Date(dateStr);
    return d.getDate().toString().padStart(2, '0') + '/' + d.getMonth() + 1 + '/' + d.getFullYear() + ' ' + d.getHours() + ':' + d.getMinutes().toString().padStart(2, '0');
}

您可以使用formatDate($(this).find("ItemDate").text())代替$(this).find("ItemDate").text()

cnwbcb6i

cnwbcb6i2#

最好的方法是Moment.js插件. moment(). format('DD/MM/YYYY);

var newDate = new Date();
console.log(newDate);
var formattedDate = moment().format('DD/MM/YYYY');
console.log(formattedDate);
<script src="https://momentjs.com/downloads/moment.js"></script>
a2mppw5e

a2mppw5e3#

使用Moment.js plugin
安装使用:

npm install moment --save

然后使用

var moment = require('moment');
let formatted = moment().format('DD/MM/YYYY');

在你的档案里。
或者,如果您在html中内联执行此操作,请使用:

<script src="moment.js"></script>
<script>
    let formatted = moment().format('DD/MM/YYYY');
</script>
    • 或**

您可以使用以下函数转换为相同的格式:

parseDate = (d) => {
        let date = new Date(d);        
        var mm = date.getMonth() + 1; // getMonth() is zero-based
        var dd = date.getDate();

        let newdate = [(dd>9 ? '' : '0') + dd + '/',
                    (mm>9 ? '' : '0') + mm+  '/',
                    date.getFullYear(),
                   ].join('');
        return newd + ' at ' + date.getUTCHours() + ':' + date.getUTCMinutes() + ':' + date.getUTCSeconds();
    }

希望这个有用。

qhhrdooz

qhhrdooz4#

我认为“dd/MM/yyyy”是法语格式:

var date = new Date('12/17/2018 03:24:00');

console.log(date.toLocaleDateString("fr-FR"));

相关问题