转换 Wordpress 页面上的所有 Unix 时间戳字符串
Convert all the Unix Timestamp strings on a Wordpress page
我正在使用名为 EventOn 的 Wordpress 插件在网站上创建事件。该插件为每个事件创建一个自定义 post,并将事件日期存储在名为 evcal_srow 的元键中
其中值以 Unix 时间存储(例如 1464739500)。
现在我想要实现的是通过 Slider Revolution 拉取这些自定义 posts,方法是使用滑块提供的简码从自定义 post 中拉出自定义字段,在这种特殊情况下,简码是 {{meta:evcal_srow}}
以下是我如何通过 slider revo 的导航编辑器生成缩略图:
<span class="tp-thumb-image">
<h3 class="thumb-event-title">
{{title}}
</h3>
<h2 class="thumb-event-date" style="color:#fff">
{{meta:evcal_srow}}
</h2>
</span>
一切正常,因为我能够成功提取 post 标题、特色图片和日期,但我需要将日期转换为人类格式。
如果我创建的是普通页面,那么我会创建一个模板文件并添加类似
的内容
<?php
$ts = get_post_meta($post->ID, 'evcal_srow', true);
$date = new DateTime("@$ts");
echo "<div class='datum'>".$date->format('d.m.Y')."</div><div class='uhrzeit'>".$date->format('H:i')."</div>";
?>
尽管我提取数据的方式是通过滑块设置,所以在这种情况下我无法使用 php,因为这是不允许的(当然除非你有更好的主意!)。此外,我无法直接编辑插件文件,因为我需要能够在未来更新它,而且我不确定是否有任何类似于插件的 child 主题。
我首先想到的是在页面加载后将页面中的所有选择器.thumb-event-date转换,可能使用一些JS或jQuery, 我试过很多方法都没有得到任何积极的结果。
如果有人能想出解决办法就太好了。
非常感谢您的宝贵时间。
解决方案(非常感谢Paul!)
- 转到滑块设置
找到 Custom Javascript 部分和
将其粘贴到其中:
revapi1.on('revolution.slide.onloaded', function() { // Replace the number 1 in revapi1.on with the ID of your slider
jQuery('.thumb-event-date').each(function(index, value) { // Replace .thumb-event-date with the selector that contains the unix time string
jQuery(value).html(new Date(jQuery(value).html()*1000).toISOString());
});
});
$('.thumb-event-date').each(function(index, value) {
$(value).html(new Date($(value).html()*1000).toISOString()); // put whatever Date() method you want/need (to show human readable format)
});
我正在使用名为 EventOn 的 Wordpress 插件在网站上创建事件。该插件为每个事件创建一个自定义 post,并将事件日期存储在名为 evcal_srow 的元键中 其中值以 Unix 时间存储(例如 1464739500)。
现在我想要实现的是通过 Slider Revolution 拉取这些自定义 posts,方法是使用滑块提供的简码从自定义 post 中拉出自定义字段,在这种特殊情况下,简码是 {{meta:evcal_srow}}
以下是我如何通过 slider revo 的导航编辑器生成缩略图:
<span class="tp-thumb-image">
<h3 class="thumb-event-title">
{{title}}
</h3>
<h2 class="thumb-event-date" style="color:#fff">
{{meta:evcal_srow}}
</h2>
</span>
一切正常,因为我能够成功提取 post 标题、特色图片和日期,但我需要将日期转换为人类格式。
如果我创建的是普通页面,那么我会创建一个模板文件并添加类似
的内容<?php
$ts = get_post_meta($post->ID, 'evcal_srow', true);
$date = new DateTime("@$ts");
echo "<div class='datum'>".$date->format('d.m.Y')."</div><div class='uhrzeit'>".$date->format('H:i')."</div>";
?>
尽管我提取数据的方式是通过滑块设置,所以在这种情况下我无法使用 php,因为这是不允许的(当然除非你有更好的主意!)。此外,我无法直接编辑插件文件,因为我需要能够在未来更新它,而且我不确定是否有任何类似于插件的 child 主题。
我首先想到的是在页面加载后将页面中的所有选择器.thumb-event-date转换,可能使用一些JS或jQuery, 我试过很多方法都没有得到任何积极的结果。
如果有人能想出解决办法就太好了。 非常感谢您的宝贵时间。
解决方案(非常感谢Paul!)
- 转到滑块设置
找到 Custom Javascript 部分和 将其粘贴到其中:
revapi1.on('revolution.slide.onloaded', function() { // Replace the number 1 in revapi1.on with the ID of your slider jQuery('.thumb-event-date').each(function(index, value) { // Replace .thumb-event-date with the selector that contains the unix time string jQuery(value).html(new Date(jQuery(value).html()*1000).toISOString()); });
});
$('.thumb-event-date').each(function(index, value) {
$(value).html(new Date($(value).html()*1000).toISOString()); // put whatever Date() method you want/need (to show human readable format)
});