jQuery剥离部分动态文本,然后使用PHP格式化为最新文本


jQuery strip part of dynamic text, then format to date with PHP

我想去掉第一个"-"之前的所有内容和"-"之后的所有内容,所以下面只剩下"2011年12月25日"(日期是动态的,所以不会总是2011年12日25日)。我首先需要一个Javascript变量:

这是html:

<p class="review-rating">
 By oakbarrels
 - Dec 25, 2011
 -
 Something.com
</p>

以下是我想去掉的javascript变量"Dec252011":

var thedate = $(this).find('.review-rating').html();

变量中有了"Dec 252011",我现在想使用pHp strtotime将其格式化为"12/25/2011"。

要使用Javascript获取日期字符串,可以在jQuery:中执行以下操作

$('.review-rating').text().match(/'-'s([^'n]+)/)[1].trim();

你可以在这里看到一个jsFiddle:http://jsfiddle.net/w2HvA/

一旦这个日期字符串被传递给PHP,你就可以使用下面的格式来格式化它

echo date("d/n/Y", strtotime($theDateString));

你可以做一个简单的爆炸来启动,所以像这样的东西:

$str = "Your HTML here <p class='review-rating'>....</p>";
$array = explode($str,'-');
$date = trim($array[1]);
$timestamp = strtotime($date);
$reformatedDate = date("d/n/Y",$timestamp);

你将需要清理它并确保它有效,但这应该会给你一个大致的想法。

我希望这能有所帮助。

试试这个片段:

<?php
$atr = '<p class="review-rating">
 By oakbarrels
 - Dec 25, 2011
 -
 Something.com
</p>';
preg_match('/-([^'->]+)-/mis',$atr,$m);
$dateStr = trim($m[1]);
echo date('Y-m-d',strtotime($dateStr));

使用jQuery:

var thedate = $('.review-rating').html();
alert(thedate.split('-')[1])