от 22/10/2008 21:54 на 1239151893 в ДБ

RPO

Registered
В дб-то ми съм записвал датите на регистрираните потребители с date
така:
$data=date('d/m/Y G:i');
и излиза 1239151893

как да направя в дб-то да се преместат от такава дата на датата която излиза когато се напише time(); (1239151893)


всмисал може да ми кажете само как от 22/10/2008 21:54 се мести на 1239151893 и аз оттам може да си го оправя!
 
Мисля ,че неможе...

Защо не го запишеш с time();
и
после да го изведеш с :

Код:
 $time = '1239151893';
$data=date('d/m/Y G:i',$time);
 
vik96 каза:
Мисля ,че неможе...

Защо не го запишеш с time();
и
после да го изведеш с :

Код:
 $time = '1239151893';
$data=date('d/m/Y G:i',$time);
еми аз точно това искам да направя

но преди съм го бил записал с дате и сега искам с тиме ама немога да го променя..
 
Мисля ,че няма как да стане...
edit: Извинявам се ,че съм те подвел... Досега не го бях виждал.
 
Направи си един цикъл и пробвай с фукнцията strtotime
$mysql = mysql_query("SELECT * FROM table");
while ($row = mysql_fetch_array($mysql)) {
mysql_query("UPDATE table SET regdate='".strtotime($row[regdate)."' WHERE regdate='$row[regdate]'")or die(mysql_error());
}
П.П. Направи си първо бекъп на базата данни и пробвай скрипта по възможност някъде другаде , за да не оцапаме нещо :idea:
 
Име проблем!
аз в дб-то съм ги записвал под такава форма:
date('d/m/Y G:i');

а това strtotime() ги чете от друга форма date('m/d/Y G:i');

всмисал дните и месеците са разместени!

какво да правя?
 
Както е казал @alex_95_bg , ще ползваш mktime();
mktime(0,0,0,date("n,j,Y",$row[regtime]));
Пробвай така , и кажи какво ще стане
 
Код:
<?php
$data = "22/10/2008 21:54";
preg_match('/(\d{2})\/(\d{2})\/(\d{4})\s(\d{2}):(\d{2})/', $data, $masiv);
$time = mktime($masiv[4], $masiv[5], 0, $masiv[2], $masiv[1], $masiv[3]);
echo $time."<br>";
echo date("d/m/Y G:i", $time);
?>
 
raiden каза:
Код:
<?php
$data = "22/10/2008 21:54";
preg_match('/(\d{2})\/(\d{2})\/(\d{4})\s(\d{2}):(\d{2})/', $data, $masiv);
$time = mktime($masiv[4], $masiv[5], 0, $masiv[2], $masiv[1], $masiv[3]);
echo $time."<br>";
echo date("d/m/Y G:i", $time);
?>

стана скрипта но възникна друг проблем!

ако датата е 09/07/2008 3:13 (без 0 преди 3:13)
изкарва часа -1
а ако е 09/07/2008 03:13
си го изкарва правилно
но в дб-то ми ги е записало без нула преди едноцифрен час ..
за това ако може промени скрипта за да разчита и такива часове.
 
Код:
<?php
$data = "22/10/2008 21:54";
preg_match('/(\d{2})\/(\d{2})\/(\d{4})\s(\d{2}):(\d{2})/', $data, $masiv);
if(strlen($masiv[4]) == 1) { $masiv[4] = "0".$masiv[4]; }
$time = mktime($masiv[4], $masiv[5], 0, $masiv[2], $masiv[1], $masiv[3]);
echo $time."<br>";
echo date("d/m/Y G:i", $time);
?>
 
е пак е същото ако е така:

Код:
<?php
$data = "09/07/2008 3:13";
preg_match('/(\d{2})\/(\d{2})\/(\d{4})\s(\d{2}):(\d{2})/', $data, $masiv);
if(strlen($masiv[4]) == 1) { $masiv[4] = "0".$masiv[4]; }
$time = mktime($masiv[4], $masiv[5], 0, $masiv[2], $masiv[1], $masiv[3]);
echo $time."<br>";
echo date("d/m/Y G:i", $time);
?>
излиза резултат: -1

Код:
<?php
$data = "09/07/2008 [color=red]0[/color]3:13";
preg_match('/(\d{2})\/(\d{2})\/(\d{4})\s(\d{2}):(\d{2})/', $data, $masiv);
if(strlen($masiv[4]) == 1) { $masiv[4] = "0".$masiv[4]; }
$time = mktime($masiv[4], $masiv[5], 0, $masiv[2], $masiv[1], $masiv[3]);
echo $time."<br>";
echo date("d/m/Y G:i", $time);
?>
така става но при мен е без 0-та при едноцифрени числа!
 
raiden каза:
Код:
<?php
$data = "22/10/2008 21:54";
preg_match('/(\d{2})\/(\d{2})\/(\d{4})\s(\d{1,2}):(\d{2})/', $data, $masiv);
echo $time."<br>";
echo date("d/m/Y G:i", $time);
?>

Грешката беше в регулярния израз, match-ваше само двуцифрени
 

Горе