jQuery剥离动态文本的一部分,然后用PHP格式化为日期

时间:2012-02-25 17:20:21

标签: php jquery regex date strtotime

我想删除第一个“ - ”之前的所有内容以及“ - ”之后的所有内容,因此我将在下面留下“2011年12月25日”(日期是动态的,所以它始终不会是2011年12月25日)。我首先需要一个Javascript变量:

这是html:

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

这是我要删除“2011年12月25日”的javascript变量:

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

对于变量中的“Dec 25,2011”,我现在想用pHp strtotime将其格式化为“12/25/2011”。

3 个答案:

答案 0 :(得分:1)

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

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

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

将此日期字符串传递给PHP后,您可以使用以下内容对其进行格式化。

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

答案 1 :(得分:0)

你可以做一个简单的爆炸开始,所以像这样:

$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);

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

我希望这会有所帮助。

答案 2 :(得分:0)

试试这个代码段:

<?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])