我确实有该脚本:
function() {
var publishedDate = "";
var yoastInfo = JSON.parse(document.head.querySelector('.yoast-schema-graph.yoast-schema-graph--main').innerHTML);
vars = yoastInfo["@graph"];
for(var i in vars) {
if(vars[i]['@type'] === 'WebPage') {
pubDateRaw=(vars[i]['datePublished']);
break;
}
}
publishedDate.concat(pubDateRaw.substring(0,4),pubDateRaw.substring(5,7),pubDateRaw.substring(8,10));
return publishedDate;
}
运行代码时,它给了我""
而不是日期。
这是json:
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebPage",
"@id": "id234234",
"url": "https://www.whatevver.com",
"inLanguage": "de-DE",
"name": "this is the name",
"isPartOf": {
"@id": "id234234
},
"primaryImageOfPage": {
"@id": "id234234"
},
"datePublished": "2020-01-14T07:46:12+00:00",
"dateModified": "2020-01-15T08:04:50+00:00",
"description": "description "
},
]
}
所以我需要从该json中提取datePubished。我的代码有什么问题?
修改
在你们的帮助下,我编写了以下脚本:
function() {
var publishedDate = "";
var yoastInfo = JSON.parse(document.head.querySelector('.yoast-schema-graph.yoast-schema-graph--main').innerHTML);
vars = yoastInfo["@graph"];
for(var i in vars) {
if(vars[i]['@type'] === 'WebPage') {
publishedDate=(vars[i]['datePublished']);
}
}
return publishedDate;
}
现在我需要将dateTime 2020-01-14T07:46:12+00:00
削减为2020-01-14
最好的解决方案是什么?
EDIT2
在以下位置找到了解决方案:To the Solution
答案 0 :(得分:0)
给出JSON:
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebPage",
"@id": "id234234",
"url": "https://www.whatevver.com",
"inLanguage": "de-DE",
"name": "this is the name",
"isPartOf": {
"@id": "id234234" // MAKE IT AS A STRING
},
"primaryImageOfPage": {
"@id": "id234234"
},
"datePublished": "2020-01-14T07:46:12+00:00",
"dateModified": "2020-01-15T08:04:50+00:00",
"description": "description "
},
]
}
function() {
let publishedDate = "";
const yoastInfo = JSON.parse(document.head.querySelector('.yoast-schema-
graph.yoast-schema-graph--main').innerHTML); // I HOPE YOURE ABLE TO EXTRACT THE JSON HERE IN yoastInfo.
vars = yoastInfo["@graph"];
for(var i in vars) {
if(vars[i]['@type'] === 'WebPage') {
publishedDate=(vars[i]['datePublished']); // YOU ARE GETTING EMPTY STRING BECAUSE YOU'RE SETTING VARIABLE CALLED 'publishedDate' AND SETTING VALUE IN 'pubDateRaw'.
}
}
return publishedDate;
}
请遵循说明中的注释。谢谢:))
并检查链接以获取更多说明: https://jsfiddle.net/gahzsrvj/1/