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

Registered : 109,038

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


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

 
Topic : 132830



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



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



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

view
01.<?php
02.            $date_now = date("Y-m-d H:i:s",time());
03.             
04.            $date_end = date("Y-m-d 24:00:00",time());
05.             
06.             
07.             
08.            if($date_now === $date_end){
09.                 
10.                redirect(base_url('guest/reset_update'));
11.                 
12.            }
13.                 
14.                ?>


Controller
1.public function reset_update(){
2.         
3.         $this->guest_model->reset_update();
4.         
5.         
6.    }



Model
01.public function reset_update(){
02.             
03.            $data = array(
04.                'update_advertise' => 0
05.                );
06.                 
07.                 
08.        $this->db->update('home_advertise', $data);
09. 
10.      
11.                 
12.                }




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 : 1547 Reply : 7
 

 

No. 1



โพสกระทู้ ( 4,765 )
บทความ ( 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)
1.$PhpSchedule = new \Rundiz\PhpSchedule\PhpSchedule();
2.$PhpSchedule->add('unique-name', 'http://url/เว็บ/คุณ', ['00']);// run on 00 (midnight).
3.$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



โพสกระทู้ ( 9,590 )
บทความ ( 2 )



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


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


ปล. จะใช้ 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



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



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


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

 

No. 4



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



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


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

view
01.<?php
02.         
03.        $date_now = date("Y-m-d H:i:s",time());
04.        $date_end = date("Y-m-d 23:59:58",time());
05.         
06.        if($date_now > $date_end){
07.             
08.            redirect(base_url('guest/reset_update'));
09.                 
10.        }
11.                 
12.        ?>



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

 

No. 5



โพสกระทู้ ( 9,590 )
บทความ ( 2 )



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


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

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

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

 

No. 6



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



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


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

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

 

No. 7



โพสกระทู้ ( 74,059 )
บทความ ( 838 )

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

สถานะออฟไลน์
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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





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