الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]اختيار نوع الحقل للتاريخ و عمل مايسمى بالـ Time since

بدأه SalehZubir في 16 مارس 2012 · 2 رد · 422 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

لدي جدول في قاعدة بيانات يقوم به حقل لتخزين المواضيع اسمه post وحقل اخر يحفظ تاريخ ووقت الموضوع

سؤالي الاول هو هل اقوم بعمل حقل خاص فقط للتاريخ ويكون نوعه DATE وحقل اخر من نوع TIMESTAMP للقيام لاحقاً بعرض Time since

سؤالي الثاني كيف يمكنني ادخل الـ TIMESTAMP في الجدول ؟

سؤالي الثالث كيف يمكنني عمل Time since لعرض كم مضى على الـ post

وشكراً

الـ PHP Code

// Create table
mysql_select_db("a_test", $con);
$sql = "CREATE TABLE p_a_test
(
Post_Id int NOT NULL AUTO_INCREMENT,
User_Id int NOT NULL,
Post TEXT,
PostDate DATE,
Sec TIMESTAMP,
IP varchar(60),
PRIMARY KEY (Post_Id),
FOREIGN KEY (User_Id) REFERENCES u_a_facetwit(User_Id)
)";

mysql_select_db("a_test", $con);

$sql="INSERT INTO p_a_test
(
User_Id,
Post,
PostDate,
Sec,
IP
)
VALUES
(
'$v_User_Id',
'$_POST[n_Post]',
'$PostDate',
'$mydate',
'$ip'
)";
#2
SalehZubir كتب:

السلام عليكم ورحمة الله وبركاته

لدي جدول في قاعدة بيانات يقوم به حقل لتخزين المواضيع اسمه post وحقل اخر يحفظ تاريخ ووقت الموضوع

سؤالي الاول هو هل اقوم بعمل حقل خاص فقط للتاريخ ويكون نوعه DATE وحقل اخر من نوع TIMESTAMP للقيام لاحقاً بعرض Time since

سؤالي الثاني كيف يمكنني ادخل الـ TIMESTAMP في الجدول ؟

سؤالي الثالث كيف يمكنني عمل Time since لعرض كم مضى على الـ post

وشكراً

الـ PHP Code

// Create table
mysql_select_db("a_test", $con);
$sql = "CREATE TABLE p_a_test
(
Post_Id int NOT NULL AUTO_INCREMENT,
User_Id int NOT NULL,
Post TEXT,
PostDate DATE,
Sec TIMESTAMP,
IP varchar(60),
PRIMARY KEY (Post_Id),
FOREIGN KEY (User_Id) REFERENCES u_a_facetwit(User_Id)
)";

mysql_select_db("a_test", $con);

$sql="INSERT INTO p_a_test
(
User_Id,
Post,
PostDate,
Sec,
IP
)
VALUES
(
'$v_User_Id',
'$_POST[n_Post]',
'$PostDate',
'$mydate',
'$ip'
)";

#3

الحمد لله استطعت حل المشكلة

حيث جعل نوع الحقل بالنسبة Timestamp هو BIGINT

اما بالنسبة لعملية حساب Time Since فقمت بكتابة هذا الكود واظن انه المناسب وهو ييعمل معي جيدا

$TimePass = $v_time-$row['Sec'];
	  $Seconds = 1;
	  $Minutes = 60;
	  $Hour = 3600;
	  $Days = 86400;
	  $Months = 2592000;
	  $Years = 31104000;

	  if($TimePass < $Minutes)
	  {
		  echo $TimePass ."Seconds"; 
	  }
	  elseif($TimePass <= $Hour)
	  {
		  echo floor($TimePass / 60)."Minutes"; 
	  }
	  elseif($TimePass <= $Days)
	  {
		  echo floor($TimePass / (60*60))."Hours"; 
	  }
	  elseif($TimePass <= $Months)
	  {
		  echo floor($TimePass / (60*60*24))."Days"; 
	  }
	  elseif($TimePass <= $Years)
	  {
		  echo floor($TimePass / (60*60*24*30))."Month";
	  }
	  else
	  {
		  echo floor($TimePass / (60*60*24*30*12))."Years";		  
	  }
1

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…