Javascript 将日期的格式更改为dd/MM/yyyy
任何人都知道如何调整当前的JS代码,并使之成为[ItemDate]以dd/MM/yyyy格式显示日期,而不是默认的:MM/dd/yyyy HH:MM:ss 代码是从一个将XML转换为可读的HMTL格式的网站复制的。。。问题只是date.format,我发现很难实现更改Javascript 将日期的格式更改为dd/MM/yyyy,javascript,jquery,jslink,Javascript,Jquery,Jslink,任何人都知道如何调整当前的JS代码,并使之成为[ItemDate]以dd/MM/yyyy格式显示日期,而不是默认的:MM/dd/yyyy HH:MM:ss 代码是从一个将XML转换为可读的HMTL格式的网站复制的。。。问题只是date.format,我发现很难实现更改 <script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <sc
<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(/'/g, "'").replace(/"/g, '"').replace(/>/g, '>').replace(/</g, '<').replace(/&/g, '&');
}
else {
output = "";
}
return output;
};
</script>
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
模板:{
字段:{
'ItemsOverview':{
“视图”:repeatingSectionViewTemplate
}
}
}
});
函数repeatingSectionViewTemplate(ctx){
var xml=ctx.CurrentItem[“ItemsOverview”];
var decodedxml=xml.DecodeXMLNotation();
var htm=“”;
xmlDoc=$.parseXML(decodedxml);
$xml=$(xmlDoc);
$xml.find(“Item”).each(函数(){
htm=htm++$(此).find(“ItemNumber”).text()++$(此).find(“ItemDescription”).text()++$(此).find(“ItemStatus”).text()++$(此).find(“ItemDate”).text()
+“”+$(this.find(“CollectedByUser”).text()+“”;
});
返回“ItemDescriptionStatusDateCollected By”+htm+”;
};
//将html符号替换为其等效的xml转义字符。
String.prototype.DecodeXMLNotation=函数(){
var输出=此;
如果($.trim(输出)!=“”){
output=output.replace(//apos;/g,“”).replace(///g,“”).replace(//g,“>”).replace(//g,”您必须创建一个函数来重新格式化日期
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');
}
而不是使用$(this.find(“ItemDate”).text()
,而是使用formatDate($(this.find(“ItemDate”).text())
实现这一点的最佳方法是Moment.js插件。
矩()格式('DD/MM/yyyyy)
var newDate=newDate();
console.log(newDate);
var formattedDate=moment().format('DD/MM/yyyyy');
console.log(格式化日期);
使用:
安装时使用:
npm安装时刻--保存
然后使用
var moment = require('moment');
let formatted = moment().format('DD/MM/YYYY');
在你的档案里
或者,如果您是在html
中进行内联操作,请使用:
设formatted=moment().format('DD/MM/YYYY');
或
可以使用以下转换为相同格式的函数:
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();
}
希望这有帮助。我认为“dd/MM/yyyy”是一种法语格式:
var日期=新日期('12/17/2018 03:24:00');
console.log(date.toLocaleDateString(“fr fr”);
use试图实现您的建议,但是整个脚本不再工作……我是否将函数formattedate(){…}
放在函数repeatingSectionViewTemplate(ctx){…}的前面或后面
在函数之外。之前或之后都不重要。你有任何错误吗?按CTRL+Shift+J打开你的控制台,看看是否有错误。我是否应该简单地复制并粘贴函数{…}区域内的代码,并引用矩量.js…然后就可以了?因为这不是我的情况!