javascript — невозможно изменить / установить новое время Linux с помощью функции php shell_exec

Я пытаюсь изменить время моего Raspberry Pi, используя php, JavaScript и shell_exec ().

Код JavaScript

<script type="application/javascript">
function settime()
{
var time = new Date();
var date = time.getDate();
var month = time.getMonth()+1;
var year = time.getFullYear();
var hours = time.getHours();
var minutes = time.getMinutes();
var seconds = time.getSeconds();

document.getElementById("hh").value = hours;
document.getElementById("minute").value = minutes;
document.getElementById("ss").value = seconds;
document.getElementById("dd").value = date;
document.getElementById("mm").value = month;
document.getElementById("yy").value = year;

return true;
}

Форма HTML я использовал

    &lt; form action="" method="post"&gt;

&lt;input type="hidden"  id="hh" name="hh" /&gt;
&lt;input type="hidden"  id="minute" name="minute" /&gt;
&lt;input type="hidden"  id="ss" name="ss" /&gt;
&lt;input type="hidden"  id="dd" name="dd" /&gt;
&lt;input type="hidden"  id="mm" name="mm" /&gt;
&lt;input type="hidden"  id="yy" name="yy" /&gt;

&lt;input type="submit" class="btn btn-success" onclick="settime();" value="Set same as your device time" name="set_dt" /&gt;

&lt;a class="btn btn-danger" href="" >Cancle changing time&lt;/a&gt;
&lt;/form&gt;

И PHP-скрипты, которые я использовал

if(isset($_POST['set_dt']))
{
$time=$_POST['hh'].":".$_POST['minute'].":".$_POST['ss'];
$dd="0";
$mm="0";
//To add 0 before date and month if less than 10 like => 09, 05, etc
if($_POST['dd']<10)$dd.=$_POST['dd'];else $dd=$_POST['dd'];
if($_POST['mm']<10)$mm.=$_POST['mm'];else $mm=$_POST['mm'];
$date=$_POST['yy'].$mm.$dd;
echo $date." ".$time;
echo shell_exec('sudo date +%Y%m%d -s "$date"');
echo shell_exec('sudo date +%T -s "$time"');
shell_exec('hwclock -w');
}

все эти коды находятся на одной странице «setting.php»

Когда я нажимаю Set same as your device time кнопка, функция JavaScript settime() получить правильное время и назначить эти скрытые поля ввода.

И время отображается echo $date." ".$time;в правильном формате.

код echo shell_exec('sudo date +%Y%m%d -s "$date"'); Не работает, я имею в виду, что это не делает каких-либо изменений в дате Pi Linux

и когда echo shell_exec('sudo date +%T -s "$time"'); выполняется это
всегда показывать 00:00:00, а время pi также становится 00:00:00.

Я не знаю, почему он не может изменить дату и время машины.
Я выполнил эту задачу более сотни раз, но дата и время не обновляются.
Пожалуйста, дайте несколько советов, потому что это основная часть моего проекта.

У меня нет устройства с часами реального времени, и Пи перезагружается несколько раз из-за отключения питания, и у меня нет батареи для постоянного питания.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]