首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML5 & PHP :获取和转换月份输入类型值为字符串,并从输入值减去一个月

HTML5 & PHP :获取和转换月份输入类型值为字符串,并从输入值减去一个月
EN

Stack Overflow用户
提问于 2016-07-28 08:39:59
回答 1查看 2K关注 0票数 1

Stackoverflow社区最近我有着独特的经历。被谷歌,试错了几个小时,但仍然没有找到解决办法。输入和期望的输出实际上很简单,但很棘手,我只是不知道如何正确地编写代码。

好吧,我会定义要求的。

解释和要求:

  1. 我有一个输入字段。此输入字段类型为月份(非日期)。因此,基本上这个输入字段应该只生成年份和月份,与生成完整日期的日期输入类型不同。
  2. 我希望在这个月的输入字段转换为STRING之前(例如: STRING格式的"2016-7“)并生成类似于”2016年7月“的内容。

这个月格式类似于日期格式,但是脚本通常使用日期格式,而不是使用月份格式。这让我好奇,我好奇为什么。

实验:

对于基本输入类型月份,我使用此脚本。

代码语言:javascript
复制
<input type="month" name="monthTransaction" value="<?php echo date("Y-m") ?>"/>

然后我试着用这样的方法来回音。

代码语言:javascript
复制
$month = mysql_real_escape_string($_POST['monthTransaction']);
$newmonth = date('Y-m', strtotime(str_replace('-', '/', $tr)));
echo $month; // Probably STRING format (i need further explanation)
echo $newmonth; // Probably DATE format (i need further explanation)

这毕竟是行不通的。但我尝试了输入字段的日期类型,它的工作。带有日期类型格式的回显精细。

从这段代码中,我了解到实际上strtotime并不是将日期转换为字符串。我不太了解它,但它可以很好地(可以回显)的日期格式,但不是月格式。

如果您能告诉我如何将月份输入类型转换为STRING,那就太棒了,因为我可以从中学习。

期望输出:

  1. 它将以"2016-07“这样的基本格式打印。
  2. 它将以高级格式打印,如“2016年7月”。

=========================================================

第二个问题(从输入值减去一个月) :

事实上,这是另一个与此相关的问题。

第二个问题解释和要求:

  1. 实际上,我希望从输入值中获得月份输入字段中的输入值减去一个(-1)个月。

第二个问题期望输出:

  1. 所以,如果你输入"2016-07“,它会给出"2016-06”等等。

日期格式是普通的,但月格式似乎挑战我。有人知道怎么解决这个问题吗?就像我说的,简单但棘手。顺便说一句,谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-28 08:50:26

您可以使用DateTime类

代码语言:javascript
复制
$month = mysql_real_escape_string($_POST['monthTransaction']);
$temp = new DateTime($month.'-01');
$newmonth = $temp->format('Y-m');
$newMonthName = $temp->format('F Y');
$newMonthMinusOne = $temp->sub(new DateInterval('P1D'))->format('Y-m');
$newMonthMinusOneName = $temp->sub(new DateInterval('P1D'))->format('F Y');

输入“2016-07”的值(所有字符串)为:

  • 2016-07
  • 2016年7月
  • 2016-06
  • 2016年6月
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38631199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档