You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP通过日期输入表单将YYYYMMDD格式日期写入TXT文件?

解答你的两个PHP日期写入TXT问题

先来看你的第一个问题:如何使用日期输入表单(<input type="date">)将日期写入TXT文件,同时修复你现有代码无法使用日期表单的问题。

问题1:使用日期输入表单写入TXT文件

你的现有代码存在几个小问题:表单未完整定义、$_POST判断逻辑不准确、文件路径和引号使用有误。下面是修正后的完整代码:

<?php
$file = "/var/www/html/from.txt";
// 只在表单提交且存在from_date字段时执行写入
if(isset($_POST['from_date']) && !empty($_POST['from_date'])) {
    $postedDate = $_POST['from_date'];
    // 将提交的日期写入文件
    file_put_contents($file, $postedDate);
}
?>

<!-- 显示已保存的日期 -->
<a>From : </a>
<?php
// 读取并显示文件内容,注意引号闭合
echo file_exists($file) ? file_get_contents($file) : '未设置日期';
?>

<!-- 日期输入表单 -->
<form action="" method="POST">
    <label for="from_date">选择日期:</label>
    <input type="date" id="from_date" name="from_date" required>
    <button type="submit">保存日期</button>
</form>

关键修正点:

  • 完整定义了表单:添加了method="POST"、日期输入框的name属性(必须设置,PHP才能通过$_POST['from_date']获取值)
  • 优化了提交判断:只有当from_date字段存在且不为空时才写入,避免刷新页面时写入空内容
  • 修复了file_get_contents的引号错误:file_get_contents("from.txt")(之前少了前引号)
  • 添加了file_exists判断:避免文件不存在时出现错误

问题2:将YYYYMMDD格式的日期写入TXT文件

HTML的<input type="date">默认提交的日期格式是YYYY-MM-DD,如果需要转换成YYYYMMDD格式写入文件,可以用PHP的date()函数或者DateTime类来处理:

方法1:使用date()和strtotime()

<?php
$file = "/var/www/html/from.txt";
if(isset($_POST['from_date']) && !empty($_POST['from_date'])) {
    // 将YYYY-MM-DD格式转成时间戳,再格式化为YYYYMMDD
    $formattedDate = date('Ymd', strtotime($_POST['from_date']));
    file_put_contents($file, $formattedDate);
}
?>

<!-- 表单和显示部分和问题1一致,只需替换PHP写入逻辑 -->
<a>From : </a>
<?php
echo file_exists($file) ? file_get_contents($file) : '未设置日期';
?>

<form action="" method="POST">
    <label for="from_date">选择日期:</label>
    <input type="date" id="from_date" name="from_date" required>
    <button type="submit">保存日期</button>
</form>

方法2:使用DateTime类(更推荐,处理日期更可靠)

<?php
$file = "/var/www/html/from.txt";
if(isset($_POST['from_date']) && !empty($_POST['from_date'])) {
    $date = new DateTime($_POST['from_date']);
    $formattedDate = $date->format('Ymd');
    file_put_contents($file, $formattedDate);
}
?>

额外验证建议:

如果担心用户提交无效日期,可以添加验证逻辑确保日期格式正确:

$date = DateTime::createFromFormat('Y-m-d', $_POST['from_date']);
if($date && $date->format('Y-m-d') === $_POST['from_date']) {
    // 日期有效,执行写入
    $formattedDate = $date->format('Ymd');
    file_put_contents($file, $formattedDate);
} else {
    echo '请输入有效的日期';
}

内容的提问来源于stack exchange,提问作者Fajar Jul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:45:58