PHP Ionic Angular HTML5 AJAX Javascript CSS MySQL jQuery Forum


รบกวนสอบถามเรื่องการแก้ไขไฟล์ โดยที่ลบไฟล์เก่า แล้วใส่ไฟล์ใหม่เข้าไปแทนค่ะ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา รบกวนสอบถามเรื่องการแก้ไขไฟล์ โดยที่ลบไฟล์เก่า แล้วใส่ไฟล์ใหม่เข้าไปแทนค่ะ

รบกวนสอบถามเรื่องการแก้ไขไฟล์ โดยที่ลบไฟล์เก่า แล้วใส่ไฟล์ใหม่เข้าไปแทนค่ะ
ข้อมูลอื่นสามารถแก้ไขได้ปกตินะคะ ยกเว้นไฟล์ค่ะ

<?php

		//*** Update Record ***//
		$objConnect = mysql_connect("localhost","root","123456") or die("Error Connect to Database");
		$objDB = mysql_select_db("project");
		mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");


		$strSQL = "UPDATE tlo";
		$strSQL .=" SET tlo_id = '".$_POST["tlo_id"]."' ,
								tlo_date_req  = '".$_POST["tlo_date_req"]."' ,
								tlo_date  = '".$_POST["tlo_date"]."' ,
								fac_id  = '".$_POST["fac_id"]."' ,
								tlo_namereq  = '".$_POST["tlo_namereq"]."' ,
								tlo_inventor  = '".$_POST["tlo_inventor"]."' ,
								tlo_name  = '".$_POST["tlo_name"]."' ,
								status_id  = '".$_POST["status_id"]."' ,
								date_status  = '".$_POST["date_status"]."' ,		
								tlo_conclu   = '".$_POST["tlo_conclu"]."' ,		
								tlo_detail   = '".$_POST["tlo_detail"]."' ,		
								type_id   = '".$_POST["type_id"]."' 	
		WHERE tlo_noreq = '".$_GET["tlo_noreq"]."' ";
		$objQuery = mysql_query($strSQL);		
	
if($_FILES["filUpload"]["name"] != "")
	{
		if(move_uploaded_file($_FILES["filUpload"]["tmp_name"],"myfile/".$_FILES["filUpload"]["name"]))
		{

			//*** Delete Old File ***//			
			@unlink("myfile/".$_POST["hdnOldFile"]);
			
			//*** Update New File ***//
			$strSQL = "UPDATE tlo ";
			$strSQL .=" SET filUpload = '".$_FILES["filUpload"]["name"][0]."',
									filUpload1 = '".$_FILES["filUpload1"]["name"][1]."',
									filUpload2 = '".$_FILES["filUpload2"]["name"][2]."',
									filUpload3 = '".$_FILES["filUpload3"]["name"][3]."',
									filUpload4 = '".$_FILES["filUpload4"]["name"][4]."'
			 WHERE tlo_noreq = '".$_GET["tlo_noreq"]."' ";
			$objQuery = mysql_query($strSQL);		

			echo "Copy/Upload Complete<br>";

		}
	}
?>
<a href="PageUploadToMySQL3.php">View files</a>


หกสิบหก วัน 203.158.179.xxx 01-03-2019 17:47:10

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 1
อันนี้หน้าฟอร์มนะคะ

<table width="75%" border="1" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <th height="33" colspan="3" align="left" scope="col">อัพโหลดเอกสาร</th>
    </tr>
    <tr>
      <th height="41" scope="col">เอกสารคำขอ</th>
      <th scope="col"><input type="file" name="fileUpload[]2" id="fileUpload[]2" /></th>
      <th scope="col"><?php echo $objResult['filUpload']; ?></th>
    </tr>
    <tr>
      <th height="41" scope="col">เอกสารแก้ไขครั้งที่ 1</th>
      <th scope="col"><input type="file" name="fileUpload[]3" id="fileUpload[]3" /></th>
      <th scope="col"><?php echo $objResult['filUpload1']; ?></th>
    </tr>
    <tr>
      <th height="41" scope="col">เอกสารแก้ไขครั้งที่ 2</th>
      <th scope="col"><input type="file" name="fileUpload[]4" id="fileUpload[]4" /></th>
      <th scope="col"><?php echo $objResult['filUpload2']; ?></th>
    </tr>
    <tr>
      <th height="41" scope="col">เอกสารแก้ไขครั้งที่ 3</th>
      <th scope="col"><input type="file" name="fileUpload[]5" id="fileUpload[]5" /></th>
      <th scope="col"><?php echo $objResult['filUpload3']; ?></th>
    </tr>
    <tr>
      <th height="41" scope="col">หนังสือสำคัญ : </th>
      <th scope="col"><input type="file" name="fileUpload[]" id="fileUpload[]" /></th>
      <th scope="col"><?php echo $objResult['filUpload4']; ?></th>
    </tr>
  </table>
  <input type="hidden" name="hdnOldFile" value="<?php echo $objResult["filUpload"];?>">
  <input type="hidden" name="hdnOldFile" value="<?php echo $objResult["filUpload1"];?>">
  <input type="hidden" name="hdnOldFile" value="<?php echo $objResult["filUpload2"];?>">
  <input type="hidden" name="hdnOldFile" value="<?php echo $objResult["filUpload3"];?>">
  <input type="hidden" name="hdnOldFile" value="<?php echo $objResult["filUpload4"];?>">
<p>
  <center><input type="submit" name="button" id="button" value="Submit" /></center>
</p>
</form>


หกสิบหก วัน 203.158.179.xxx 01-03-2019 17:48
 ความคิดเห็นที่ 2
การอัพโหลดไฟล์ ส่วนสำคัญคือชื่อของ element หรือขื่อของ input file หรือก็คือ name=""
 
    <input type="file" name="fileUpload[]" /><br>
    <input type="file" name="fileUpload[]" /><br>
    <input type="file" name="fileUpload[]" /><br>
    <input type="file" name="fileUpload[]" /> 
 
รูปแบบข้างต้น เป็นการกำหนดแบบ array โดยมีชื่อเหมือนกัน คือ fileUpload 
ดูแนวทาง เพิ่มเติมได้ที่ http://niik.in/440
 
ค่าตัวแปรที่ส่งไปจะเรียงจาก key 0 นับไปจนครบจำนวน  สมมติข้อมูล name ของแต่ละไฟล์
ก็จะเป็นตามรูปแบบด้านล่าง
 
$_FILES['fileUpload']['name'][0];
$_FILES['fileUpload']['name'][1];
$_FILES['fileUpload']['name'][2];
$_FILES['fileUpload']['name'][3];
 
นอกจากการกำหนดข้างต้น เราสามารถระบุ key เข้าไปอีกก็ได้ แต่จะไม่ค่อยนิยม เวลานำไปประยุกต์
หรือเรียกใช้เพิ่มเติม ตัวอย่างการระบุ key เอง
 
    <input type="file" name="fileUpload[a]" /><br>
    <input type="file" name="fileUpload[b]" /><br>
    <input type="file" name="fileUpload[c]" /><br>
    <input type="file" name="fileUpload[d]" /> 
 
หรือ 
 
    <input type="file" name="fileUpload[1]" /><br>
    <input type="file" name="fileUpload[2]" /><br>
    <input type="file" name="fileUpload[3]" /><br>
    <input type="file" name="fileUpload[4]" /> 
 
ดังนั้นในที่นี้จะแนะนำเป็นแบบ เป็น array แบบ key zero base ที่เริ่มจาก 0
 
การตรวจสอบว่ามีการเลือกไฟล์เข้ามาหรือไม่ เราสามารถใช้วิธีนำชื่อของแต่ละรายการที่เลือกมาต่อๆ กัน
หากไม่เป็นค่าว่าง ก็แสดงว่ามีการเลือกไฟล์เพื่ออัพโหลด 
 
<?php
if(@implode("",$_FILES["fileUpload"]['name'])!=""){ // มีการเลือกไฟล์เพื่ออัพโหลด
	// 
}
 
จะแตกต่างจากกรณีที่ $_FILES["fileUpload"]['name'] ไม่ใช่ array 
เช่น กรณีไม่ใช่ array 
 
<input type="file" name="fileUpload" />
 
แบบนี้เราสามารถตรวจเฉพาะตัวแปรเดียวได้ โดยใช้คำสั่ง
 
if($_FILES["fileUpload"]['name']!=""){ // มีการเลือกไฟล์เพื่ออัพโหลด
	// 	
}
 
กลับมาส่วนอัพโหลดไฟล์แบบ array เมื่อมีการตรวจสอบเบื้องต้นว่ามีการเลือกไฟล์
อย่างน้อย 1 ไฟล์หรือทั้งหมด แล้ว เราก็ทำการวนลูปทำงานหรือจัดการในแต่ละไฟล์ด้วย key ของ array
ดังนี้
 
if(@implode("",$_FILES["fileUpload"]['name'])!=""){ // มีการเลือกไฟล์เพื่ออัพโหลด
	$arr_fileupload_name = array(); //  array สำหรับเก็บชื่อไฟล์ที่อัพโหลด
	for($i=0;$i<count($_FILES["fileUpload"]['name']);$i++){ // วนลูปจัดการกับไฟล์แต่ละไฟล์ 
		$fileupload_name = $_FILES["fileUpload"]['name'][$i];  // ชื่อของแต่ละไฟล์
		$fileupload_data = $_FILES["fileUpload"]['tmp_name'][$i]; // ข้อมูลของแต่ละไฟล์
		// ตรวจสอบและอัฑโหลดแต่ละไฟล์
		if(is_uploaded_file($fileupload_data) && move_uploaded_file($fileupload_data,"myfile/".$fileupload_name)){
			array_push($arr_fileupload_name,$fileupload_name);  // เก็บชื่อไฟล์ที่อัพโหลดสำเร็จ
		}else{
			array_push($arr_fileupload_name,""); // เก็บค่าว่างถ้าอัพโหลดไฟล์นั้น ไม่สำเร็จ
		}
	}
}
 
ถ้าเรามีฟิลด์ของแต่ละไฟล์ที่จะอัพโหลด อยู่ในแถวเดียวกัน เราสามารถอัพเดททีละไฟล์ หรืออัพเดทครั้งเดียวก็ได้เช่น
เรามีฟิลด์ข้อมูลไฟล์ 4 ไฟล์เป็นดังนี้ filUpload,filUpload1,filUpload2,filUpload3
สามารถเพิ่มคำสั่ง sql อัพเดทไฟล์ที่เพิ่งอัพโหลดดังนี้
 
if(@implode("",$_FILES["fileUpload"]['name'])!=""){ // มีการเลือกไฟล์เพื่ออัพโหลด
	$arr_fileupload_name = array(); //  array สำหรับเก็บชื่อไฟล์ที่อัพโหลด
	for($i=0;$i<count($_FILES["fileUpload"]['name']);$i++){ // วนลูปจัดการกับไฟล์แต่ละไฟล์ 
		$fileupload_name = $_FILES["fileUpload"]['name'][$i];  // ชื่อของแต่ละไฟล์
		$fileupload_data = $_FILES["fileUpload"]['tmp_name'][$i]; // ข้อมูลของแต่ละไฟล์
		// ตรวจสอบและอัฑโหลดแต่ละไฟล์
		if(is_uploaded_file($fileupload_data) && move_uploaded_file($fileupload_data,"myfile/".$fileupload_name)){
			array_push($arr_fileupload_name,$fileupload_name);  // เก็บชื่อไฟล์ที่อัพโหลดสำเร็จ
		}else{
			array_push($arr_fileupload_name,""); // เก็บค่าว่างถ้าอัพโหลดไฟล์นั้น ไม่สำเร็จ
		}
	}
	// อัพเดทครั้งเดียวนอกลูป 
	$sql="
	UPDATE table SET
	filUpload='".$arr_fileupload_name[0]."',
	filUpload2='".$arr_fileupload_name[1]."',
	filUpload3='".$arr_fileupload_name[2]."',
	filUpload4='".$arr_fileupload_name[3]."'
	WHERE field=x
	";
}
 
จะเห็นว่าการอัพเดทข้อมูลไฟล์ครั้งแรก เราจะไม่สนใจว่าเป็นค่าว่างหรือไม่ ดังนั้นข้อมูลที่บันทึก ก็ขึ้นกับว่า
ไฟล์นั้นๆ อัพโหลดสำเร็จหรือไม่ เช่น ไฟล์ที่ 3 อัพโหลดไม่สำเร็จ ค่าตัวแปร $arr_fileupload_name[2]
ก็จะเป็นค่าว่าง ทำให้ฟิลด์ filUpload3 เริ่มต้นเป็นค่าว่าง
 
ต่อไป กรณีการอัพโหลด เมื่อมีการแก้ไข โดยต้องการให้อัพโหลดและทับไฟล์เดิม
 
จริงๆ เงื่อนไข เป็นไปได้หลายรูปแบบ ขึ้นกับว่าจะใช้รูปแบบไหน เช่น
  •     ไม่สนใจไฟล์เดิม ลบไฟล์เดิมทั้งหมด และทำการอัพโหลดไฟล์ใหม่ไปแทนที่
  •     ลบไฟล์เดิมเฉพาะ ไฟล์ใหม่อัพโหลดสำเร็จ คงไฟล์เดิมที่อัพโหลดไฟล์ใหม่ไม่สำเร็จ
 
เหล่านี้เป็นต้น
 
กลับมาที่เงื่อนไขการแก้ไขไฟล์อัพโหลด สิ่งที่เราต้องส่งไปด้วยเมื่อแก้ไข คือชื่อไฟล์เดิม เราสามารถกำหนด
โดยใช้ hidden โดยต้องกำหนดชื่อเป็นแบบ array ให้สัมพันธ์กับ input file เช่น
 
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
    <input type="file" name="fileUpload[]" />
    <input type="hidden" name="oldFile[]" value="ชื่อไฟล์เดิม" /><br>
    <input type="file" name="fileUpload[]" />
    <input type="hidden" name="oldFile[]" value="ชื่อไฟล์เดิม" /><br>
    <input type="file" name="fileUpload[]" />
    <input type="hidden" name="oldFile[]" value="ชื่อไฟล์เดิม" /><br>
    <input type="file" name="fileUpload[]" />
    <input type="hidden" name="oldFile[]" value="ชื่อไฟล์เดิม" />
  <button type="submit" name="bt_upload" id="bt_upload">Submit</button>
</form>
 
หรือกำหนดลักษณะแบบนี้ก็ได้
 
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
    <input type="file" name="fileUpload[]" /><br>
    <input type="file" name="fileUpload[]" /><br>
    <input type="file" name="fileUpload[]" /><br>
    <input type="file" name="fileUpload[]" />
        
    <input type="hidden" name="oldFile[]" value="ชื่อไฟล์เดิม" />    
    <input type="hidden" name="oldFile[]" value="ชื่อไฟล์เดิม" />   
    <input type="hidden" name="oldFile[]" value="ชื่อไฟล์เดิม" />
    <input type="hidden" name="oldFile[]" value="ชื่อไฟล์เดิม" />
  <button type="submit" name="bt_upload" id="bt_upload">Submit</button>
</form>
 
สิ่งสำคัญคือลำดับของข้อมูลเดิม ต้องเรียงลำดับให้สัมพันธ์กับฟิลด์ที่อัพโหลด เพื่อให้ key ที่อ้างอิง ตรงกัน
 
ตัวอย่างนี้ เราจะใช้เงื่อนไขว่า
    ลบไฟล์เดิมเฉพาะ ไฟล์ใหม่อัพโหลดสำเร็จ คงไฟล์เดิมที่อัพโหลดไฟล์ใหม่ไม่สำเร็จ
 
จะได้เป็นดังนี้
 
if(@implode("",$_FILES["fileUpload"]['name'])!=""){ // มีการเลือกไฟล์เพื่ออัพโหลด
	$arr_fileupload_name = array(); //  array สำหรับเก็บชื่อไฟล์ที่อัพโหลด
	for($i=0;$i<count($_FILES["fileUpload"]['name']);$i++){ // วนลูปจัดการกับไฟล์แต่ละไฟล์ 
		$fileupload_name = $_FILES["fileUpload"]['name'][$i];  // ชื่อของแต่ละไฟล์
		$fileupload_data = $_FILES["fileUpload"]['tmp_name'][$i]; // ข้อมูลของแต่ละไฟล์
		// ตรวจสอบและอัฑโหลดแต่ละไฟล์
		if(is_uploaded_file($fileupload_data) && move_uploaded_file($fileupload_data,"myfile/".$fileupload_name)){
			@unlink("myfile/".$_POST["oldFile"][$i]); // ลบไฟล์เดิม
			array_push($arr_fileupload_name,$fileupload_name);  // เก็บชื่อไฟล์ที่อัพโหลดสำเร็จ
		}else{
			array_push($arr_fileupload_name,$_POST["oldFile"][$i]); // เก็บชื่อไฟล์เดิมถ้าอัพโหลดไฟล์นั้น ไม่สำเร็จ
		}
	}
	// อัพเดทครั้งเดียวนอกลูป 
	$sql="
	UPDATE table SET
	filUpload='".$arr_fileupload_name[0]."',
	filUpload2='".$arr_fileupload_name[1]."',
	filUpload3='".$arr_fileupload_name[2]."',
	filUpload4='".$arr_fileupload_name[3]."'
	WHERE field=x
	";
}
 


Ninenik 223.24.4.xxx 02-03-2019
 ความคิดเห็นที่ 3
ลองทำตามแล้วนะคะ อัพไฟล์แทนที่ได้เรียบร้อย
แต่ว่า ไฟล์ที่ไม่ได้ทำการอัพ มันก็ดันถูกลบไปด้วย
ตรงนี้ควรแก้ยังไงดีคะ ?

ไฟล์หน้าฟอร์ม

<table width="75%" border="1" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <th height="33" colspan="3" align="left" scope="col">อัพโหลดเอกสาร</th>
    </tr>
    <tr>
      <th height="41" scope="col">เอกสารคำขอ</th>
      <th scope="col"><input type="file" name="filUpload[]" id="filUpload[]" /></th>
      <th scope="col"><?php echo $objResult['filUpload']; ?></th>
        <input type="hidden" name="hdnOldFile[]" value="<?php echo $objResult["filUpload"];?>">
    </tr>
    <tr>
      <th height="41" scope="col">เอกสารแก้ไขครั้งที่ 1</th>
      <th scope="col"><input type="file" name="filUpload[]" id="filUpload[]" /></th>
      <th scope="col"><?php echo $objResult['filUpload1']; ?></th>
        <input type="hidden" name="hdnOldFile[]" value="<?php echo $objResult["filUpload1"];?>">
    </tr>
    <tr>
      <th height="41" scope="col">เอกสารแก้ไขครั้งที่ 2</th>
      <th scope="col"><input type="file" name="filUpload[]" id="filUpload[]" /></th>
      <th scope="col"><?php echo $objResult['filUpload2']; ?></th>
        <input type="hidden" name="hdnOldFile[]" value="<?php echo $objResult["filUpload2"];?>">
    </tr>
    <tr>
      <th height="41" scope="col">เอกสารแก้ไขครั้งที่ 3</th>
      <th scope="col"><input type="file" name="filUpload[]" id="filUpload[]" /></th>
      <th scope="col"><?php echo $objResult['filUpload3']; ?></th>
        <input type="hidden" name="hdnOldFile[]" value="<?php echo $objResult["filUpload3"];?>">
    </tr>
    <tr>
      <th height="41" scope="col">หนังสือสำคัญ : </th>
      <th scope="col"><input type="file" name="filUpload[]" id="filUpload[]" /></th>
      <th scope="col"><?php echo $objResult['filUpload4']; ?></th>
      <input type="hidden" name="hdnOldFile[]" value="<?php echo $objResult["filUpload4"];?>">
    </tr>
  </table>


ไฟล์แก้ไข


<?php

		//*** Update Record ***//
		$objConnect = mysql_connect("localhost","root","123456") or die("Error Connect to Database");
		$objDB = mysql_select_db("project");
		mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");


		$strSQL = "UPDATE tlo";
		$strSQL .=" SET tlo_id = '".$_POST["tlo_id"]."' ,
								tlo_date_req  = '".$_POST["tlo_date_req"]."' ,
								tlo_date  = '".$_POST["tlo_date"]."' ,
								fac_id  = '".$_POST["fac_id"]."' ,
								tlo_namereq  = '".$_POST["tlo_namereq"]."' ,
								tlo_inventor  = '".$_POST["tlo_inventor"]."' ,
								tlo_name  = '".$_POST["tlo_name"]."' ,
								status_id  = '".$_POST["status_id"]."' ,
								date_status  = '".$_POST["date_status"]."' ,		
								tlo_conclu   = '".$_POST["tlo_conclu"]."' ,		
								tlo_detail   = '".$_POST["tlo_detail"]."' ,		
								type_id   = '".$_POST["type_id"]."' 	
		WHERE tlo_noreq = '".$_GET["tlo_noreq"]."' ";
		$objQuery = mysql_query($strSQL);	
		$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]<br>".mysql_error());
	
		if(@implode("",$_FILES["filUpload"]['name'])!=""){ // มีการเลือกไฟล์เพื่ออัพโหลด
    $arr_fileupload_name = array(); //  array สำหรับเก็บชื่อไฟล์ที่อัพโหลด
    for($i=0;$i<count($_FILES["filUpload"]['name']);$i++){ // วนลูปจัดการกับไฟล์แต่ละไฟล์ 
        $fileupload_name = $_FILES["filUpload"]['name'][$i];  // ชื่อของแต่ละไฟล์
        $fileupload_data = $_FILES["filUpload"]['tmp_name'][$i]; // ข้อมูลของแต่ละไฟล์
        // ตรวจสอบและอัฑโหลดแต่ละไฟล์
        if(is_uploaded_file($fileupload_data) && move_uploaded_file($fileupload_data,"myfile/".$fileupload_name)){
            @unlink("myfile/".$_POST["hdnOldFile"][$i]); // ลบไฟล์เดิม
            array_push($arr_fileupload_name,$fileupload_name);  // เก็บชื่อไฟล์ที่อัพโหลดสำเร็จ
        }else{
            array_push($arr_fileupload_name,$_POST["hdnOldFile"][$i]); // เก็บชื่อไฟล์เดิมถ้าอัพโหลดไฟล์นั้น ไม่สำเร็จ
        }
    }}
			//*** Update New File ***//
			$strSQL = "UPDATE tlo ";
			$strSQL .=" SET filUpload = '".$arr_fileupload_name[0]."',
									filUpload1 ='".$arr_fileupload_name[1]."',
									filUpload2 = '".$arr_fileupload_name[2]."',
									filUpload3 = '".$arr_fileupload_name[3]."',
									filUpload4 ='".$arr_fileupload_name[4]."'
			 WHERE tlo_noreq = '".$_GET["tlo_noreq"]."' ";
			$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]<br>".mysql_error());	
?>
<a href="PageUploadToMySQL3.php">View files</a>


หกสิบหก วัน 203.158.179.xxx 02-03-2019 17:51
 ความคิดเห็นที่ 4
บางครั้ง update ข้อมูลส่วนอื่นที่ไม่ใชไฟล์ 
ไฟล์ก็ถูกลบไปหมดเลยค่ะ 


หกสิบหก วัน 203.158.179.xxx 02-03-2019 17:55
 ความคิดเห็นที่ 5
ขอบคุณมาก ๆ เลยนะคะสำหรับคำแนะนำ 
ตอนนี้ได้เรียบร้อยแล้วค่ะ
พอดีใส่ปีกกาผิดที่ค่ะ


หกสิบหก วัน 203.158.179.xxx 02-03-2019 18:47