ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: l3master ที่ 22 มีนาคม 2016, 21:56:05



หัวข้อ: ขอความช่วยเหลือ[PHP] Function System() เพื่อการตั้งเวลาเครื่องผ่านเว็บ
เริ่มหัวข้อโดย: l3master ที่ 22 มีนาคม 2016, 21:56:05
พอดีผมทำโปรเจค Rpi อ่ะครับ ระบบคล้ายๆ Linux
ตอนนี้จนปัญญาจริงๆ ครับ ไม่รู้พึ่งทางไหนดี  :wanwan031:


ผมต้องการจะต้องค่าเวลาและวันที่ผ่านทางหน้าเว็บอ่ะครับ
แต่จนวันนี้ก็ทำไม่ได้

โดยคอมมานหลักในการตั้งเวลาก็ประมาณนี้ date -s "2 OCT 2006 18:00:00"
ผมก็เลยเขียน php ดังนี้ครับ
โดยรับค่าจากผู้ใช้มา แล้วก็เปลี่ยนวันที่เครื่องhost ตามค่าที่ได้รับอ่ะครับ

                      $day=$_POST['day'];
                      $month=$_POST['month'];
                      $year=$_POST['year'];
                      system("sudo date -s ".$day." ".$month." ".$year."");

ทำแบบนี้ไม่มีเออเร่อครับ แต่เวลาก็ไม่เปลี่ยนด้วย
ผมก็ลองหลายวิธีอยู่เหมือนกัน ไม่ได้สักที วอนผู้รู้ช่วยชี้แนะด้วยครับ  :wanwan017:

ป.ล.ผมลองใช้คำสั่ง system("sudo shutdown -r now"); เพื่อสั่งรีสตาร์ทผ่านเครื่องก็ผ่านนะครับ


หัวข้อ: Re: ขอความช่วยเหลือ[PHP] Function System() เพื่อการตั้งเวลาเครื่องผ่านเว็บ
เริ่มหัวข้อโดย: whatif ที่ 22 มีนาคม 2016, 23:25:23
จาก system("sudo date -s ".$day." ".$month." ".$year."");
1) ลอง เปลี่ยนเป็น echo แทนก่อนนะ echo("sudo date -s ".$day." ".$month." ".$year."");
2) แล้วเอา output จาก 1) ที่ได้ไปลองรัน shell ดูว่ามันผ่านมั้ย ?

3) คิดว่าไม่ผ่าน ให้ใส่ single quote เข้าไปคร่อมวันที่ ตามนี้ ตัวแดง
echo("sudo date -s '".$day." ".$month." ".$year."'");

4) เอา output ที่ได้จาก 3) ไปลองรันที่ shell อีกครั้ง
5) หากผ่านแก้ echo เป็น system

ลองดูนะ ไวๆ ก็ทำ 3,4,5 เลย

ปล.
a) ทำไมตัวอุปกรณ์ที่ว่าไม่มี sync time ผ่าน ntp อ่ะ ?
b) หากอุปกรณ์มันคล้ายๆ linux ต้องทำ hwclock --systohc ด้วยม่ะ เพื่อ set the hardware clock to the current system time


หัวข้อ: Re: ขอความช่วยเหลือ[PHP] Function System() เพื่อการตั้งเวลาเครื่องผ่านเว็บ
เริ่มหัวข้อโดย: ngokung ที่ 23 มีนาคม 2016, 00:11:44
แบบนี้ได้ไหมครับ

In Windows, the code would look like this:
shell_exec("date 09-09-99"); // Use "date mm-dd-yy" or "time hh:mm:ss", respectively

In UNIX, according to the date man page, the code would look like:
shell_exec("date 0909hhmm1999"); // It says "date MMDDhhmiYYYY". I'm not sure how to set seconds, although I assume "mi" = "minutes"

อ้างอิงจาก http://stackoverflow.com/questions/3923848/change-todays-date-and-time-in-php


หัวข้อ: Re: ขอความช่วยเหลือ[PHP] Function System() เพื่อการตั้งเวลาเครื่องผ่านเว็บ
เริ่มหัวข้อโดย: l3master ที่ 23 มีนาคม 2016, 02:57:19
ขอบคุณทุกท่านนะครับ เดียวพรุ่งนี้ผมจะลองทำ
ตัว raspberrypi มี syc เวลาอยู่ครับ
ผมเข้าใจว่า เป็นพวกอ้างอิงตาม Timezone ใช่มั้ยหว่า
ถ้าใช่มั้นต้องเรียก ไปตั้งทุกครั้งที่เปิดเครื่องเลยอ่ะครับ

ส่วน Hardward clock ผมตั้งไม่เป็นอ่ะครับ T^T
เพราะงั้นผมต้องตั้งค่าวันที่ใหม่ทุกๆครั้ง ที่เปิดเครื่องครับ
จึงแก้ปัญหาที่ปลายเหตุ โดยการเพิ่มฟังก์ชั่นนี้แหละครับ

หน้าตาที่ผมออกแบบไว้ประมาณนี้ครับ
(http://upic.me/i/et/1asdasd.jpg) (http://upic.me/show/58144317)

ป.ล.ผมทำโปรเจคสมาร์ทฟาร์มครับ พวกตั้งเวลารถน้ำ ตั้งเวลาไห้แสง ประมาณนี้ครับ


หัวข้อ: Re: ขอความช่วยเหลือ[PHP] Function System() เพื่อการตั้งเวลาเครื่องผ่านเว็บ
เริ่มหัวข้อโดย: honghong ที่ 23 มีนาคม 2016, 14:19:48
ลองใช้ ดูครับ

โค๊ด:
system("sudo date -s \"{$day} {$month} {$year}\"");

อ่านค่าที่รับมาก่อน เหมือนด้านบน
โค๊ด:
echo"sudo date -s \"{$day} {$month} {$year}\"";

อ้างอิง จากที่เขาทำมา
โค๊ด:
exec('date -s "24 NOV 2013 12:38:00"')
http://stackoverflow.com/questions/20177595/php-change-server-date-time


หัวข้อ: Re: ขอความช่วยเหลือ[PHP] Function System() เพื่อการตั้งเวลาเครื่องผ่านเว็บ
เริ่มหัวข้อโดย: ohmohm ที่ 27 มีนาคม 2016, 21:54:42
ทดลองแบบ ปีเดือนวัน ซิครับ

                      system('sudo date -s "'.$year.'-'.$month.'-'.$day.'"');

ปล. ถ้าเป็น hardware ลองหา real-time clock module สำหรับ Raspberry Pi ดูซิครับ โครงงานน่าสนจัง