Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,303

HOME > PHP > PHP Forum > สอบถามเรื่องการ update เวลาครับ อยากให้ update ทุกๆเที่ยงคืน แบบ auto อ่ะครับ





 

สอบถามเรื่องการ update เวลาครับ อยากให้ update ทุกๆเที่ยงคืน แบบ auto อ่ะครับ

 



Topic : 132830



โพสกระทู้ ( 163 )
บทความ ( 0 )



สถานะออฟไลน์




สอบถามเรื่องการ update เวลาครับ อยากให้ update ทุกๆเที่ยงคืน แบบ auto อ่ะครับ ปัญหาคือมันไม่ update ครับ

view
<?php
			$date_now = date("Y-m-d H:i:s",time()); 
			
			$date_end = date("Y-m-d 24:00:00",time()); 
			
			
			
			if($date_now === $date_end){
				
				redirect(base_url('guest/reset_update'));
				
			}
				
				?>


Controller
public function reset_update(){
		
		 $this->guest_model->reset_update();
		
		
	}



Model
public function reset_update(){
			
			$data = array(
				'update_advertise' => 0 
				);
				
				
        $this->db->update('home_advertise', $data);

     
				
				}




Tag : PHP









ประวัติการแก้ไข
2018-12-25 22:28:02
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-12-25 22:25:43 By : teedesign View : 190 Reply : 7
 

 

No. 1



โพสกระทู้ ( 3,369 )
บทความ ( 8 )



สถานะออฟไลน์


อย่างแรก เขียน class/method แล้วทดลองเรียกผ่าน URL ให้มันทำงานได้แน่ๆซะก่อน.
เอาให้มันแน่ใจว่า update ได้แล้ว.
ทำโดยยังไม่ต้องเอาเงื่อนไขเวลามาครอบอะไรทั้งนั้น update ล้วนๆเพียวๆ เอาให้มันได้แน่ๆแล้วค่อยไปต่อ.

อย่างสอง ถ้าจะเอาเงื่อนไขเวลาครอบเป๊ะๆว่า เที่ยงคืน
ตัวค่าของเวลาผ่าน format H:i:s มันไม่มีนะครับ 24:00:00 น่ะ มีแต่ 00:00:00 ซึ่งเป็นของวันที่เริ่มต้นใหม่ด้วย.
แล้วการจะรันแล้วได้เวลา เที่ยงคืน เป๊ะๆเลย มันยากมากนะครับด้วยหลายปัจจัย.
1. เวลาบน server ต้องตรง ซึ่งส่วนใหญ่ server ไทยไม่ค่อยชอบตั้ง sync เวลาเลยไม่ตรงบ่อยๆ.
2. ต้องรันตอนเวลานั้นเป๊ะๆผ่าน cron job. จะเลยไปนาทีหนึ่งก็ไม่ได้นะครับ. แล้วที่เจอคือ cron job ตั้งไว้เป๊ะแต่มันรันไม่เป๊ะนี่สิ.

แต่ถ้าจะเอาแบบว่า ตั้งเวลาให้ cron job รันตอนเที่ยงคืนทุกๆวัน แม้จะไม่ตรงก็ไม่เป็นไร แบบนี้ก็ต้องเอา class/function มาช่วย.
ปกติถ้าใช้พวก framework บางตัวเขาจะมีมาให้ แต่ถ้าไม่มีก็ยังมีคนทำแจกเยอะแยะ หรือใช้ของผมก็ได้ https://github.com/Rundiz/php-scheduler
อ่านเพิ่มเติม https://rundiz.com/web-resources/downloads/%e0%b8%81%e0%b8%b3%e0%b8%ab%e0%b8%99%e0%b8%94%e0%b9%80%e0%b8%a7%e0%b8%a5%e0%b8%b2%e0%b8%97%e0%b8%b3%e0%b8%87%e0%b8%b2%e0%b8%99%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2-php-scheduler
api doc http://apidocs.rundiz.com/php-scheduler/
Code (PHP)
$PhpSchedule = new \Rundiz\PhpSchedule\PhpSchedule();
$PhpSchedule->add('unique-name', 'http://url/เว็บ/คุณ', ['00']);// run on 00 (midnight).
$PhpSchedule->run();









ประวัติการแก้ไข
2018-12-25 23:48:47
2018-12-25 23:50:44
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-12-25 23:47:43 By : mr.v
 


 

No. 2



โพสกระทู้ ( 7,588 )
บทความ ( 1 )



สถานะออฟไลน์


นำ algorithm จาก คห 1 มาใช้ เพิ่มเติม สร้าง backup เวลาไว้เป็นเงื่อนไขในการตรวจสอบ
Code (PHP)
// เดาเอาว่าใช้ codeigniter ในการเขียน
$cur_time = time(); // ใช้ตัวแปรเก็บเวลา เพื่อไม่ใช้คำสั่ง time() พร่ำเพรื่อ เพราะมีผลทำให้ system time ช้าได้
$f=file_get_contents($fn = FCPATH . 'last_update.txt'); // เรียกเวลา ครั้งก่อน มาตรวจสอบ
$last_date=($a=($f!==false? trim($f) : '')) > '' ? $a : date('Y-m-d', strtotime('-1day', $cur_time));
 // ถ้าไม่เคย update กำหนดจากวันที่ปัจจุบัน - 1 วัน
$target_time = strtotime('+1day', $last_date); // กำหนด target จากวันที่ครั้งก่อน + 1 วัน
if($cur_time > $target_time){ // ตรวจสอบเวลาปัจจุบัน กับ เวลาเป้าหมาย
	file_put_contents($fn, date('Y-m-d', $cur_time)); // เซฟ backup วันที่ีupdate
	redirect(base_url('guest/reset_update')); // run program update
}


ปล. จะใช้ database เก็บ backup เวลาก็ได้ ตามสดวก
ถ้าเป็นไฟล์ ก็อย่าลืม permission ให้ไฟล์ด้วย


ประวัติการแก้ไข
2018-12-26 11:53:22
2018-12-26 11:53:56
2018-12-26 11:57:22
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-12-26 10:28:20 By : Chaidhanan
 

 

No. 3



โพสกระทู้ ( 163 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-12-26 11:45:25 By : teedesign
 


 

No. 4



โพสกระทู้ ( 163 )
บทความ ( 0 )



สถานะออฟไลน์


ได้แล้วครับ เปลี่ยนเงื่อนไขนิดเดียวครับผม แต่อ้างอิงเวลา Sever ครับผม

view
<?php 
		
		$date_now = date("Y-m-d H:i:s",time()); 
		$date_end = date("Y-m-d 23:59:58",time()); 
		
		if($date_now > $date_end){
			
			redirect(base_url('guest/reset_update'));
				
		}
				
		?>



ประวัติการแก้ไข
2018-12-30 10:49:42
2018-12-30 11:23:27
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-12-30 10:48:44 By : teedesign
 


 

No. 5



โพสกระทู้ ( 7,588 )
บทความ ( 1 )



สถานะออฟไลน์


ระวังบางวันมันจะไม่อัพเดทเอานะครับ

ตามโค๊ดนี้มันหมายถีง โปรแกรมต้องเปิดทำงานช่วงเวลา 23:59:58 - 23:59:59.000 นะครับ 2 วินาที เท่านั้น

ไม่คิดเพื่อ เกิดการ delay เพราะ server หยุดการทำงานบ้างเลยเหรอครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-12-30 12:42:11 By : Chaidhanan
 


 

No. 6



โพสกระทู้ ( 3,369 )
บทความ ( 8 )



สถานะออฟไลน์


ผมเตือนไปแล้วววนะ
Quote:
การจะรันแล้วได้เวลา เที่ยงคืน เป๊ะๆเลย มันยากมากนะครับด้วยหลายปัจจัย.

เตือนแล้วววววนะครับ รันไม่ติด, ครอนสั่งรันแล้วโค้ดไม่ทำงาน ก็อย่าถามนะครับว่าทำไม เพราะบอกแล้ว ที่บอกก็เพราะเคยเจอมาแล้ว จึงได้เขียนคลาสมาแจกนี่ไงครับ.
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-01-01 02:43:48 By : mr.v
 


 

No. 7



โพสกระทู้ ( 73,896 )
บทความ ( 837 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

=> การสร้าง Event Scheduler หรือ Job Schedule
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-01-02 10:53:35 By : mr.win
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่องการ update เวลาครับ อยากให้ update ทุกๆเที่ยงคืน แบบ auto อ่ะครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
for Contact Us : [Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่