我发现使用DatePeriod有问题,这可能是因为我是愚蠢的哈哈.
正如您所看到的,我在结束日期中添加了+1,因为我想要包含范围的最后日期.
但我的问题是,当我有结束日期31时,它使它为32,这不是一个日期,所以它抛出一个错误.
有没有办法包括结束日期或使+1工作?
$period = new DatePeriod(
new DateTime($event['startyear'].$event['startmonth'].$event['startdate']),
new DateInterval('P1D'),
new DateTime($event['endyear'].$event['endmonth'].$event['enddate'] +1)
);
foreach ($period as $savedDate) {
echo $savedDate;
}
Run Code Online (Sandbox Code Playgroud) import java.time.LocalDate;
import java.time.Period;
public class DateDiff {
public static void main(String[] args) {
/** The date at the end of the last century */
LocalDate endofCentury = LocalDate.of(2000, 12, 31);
LocalDate now = LocalDate.now();
Period diff = Period.between(endofCentury, now);
System.out.printf("The 21st century (up to %s) is %s old%n", now, diff);
System.out.printf("The 21st century is %d years, %d months and %d days old",
diff.getYears(), diff.getMonths(), diff.getDays());
}
}
Run Code Online (Sandbox Code Playgroud)
没有找到本地日期我错过了一个import指令
我正在使用此脚本来验证是否有人在进入生日时超过16岁.问题是,它只能以当前的年度准确度进行验证,所以如果有人今年年满16岁但仍然是15岁,那么它仍然会通过.
任何人都可以告诉我如何验证当天,Date()javascript函数在线没有足够的信息.
我的代码:
$.validator.addMethod("check_date_of_birth", function(value, element) {
var dateOfBirth = $("#dob").val();
var arr_dateText = dateOfBirth.split("/");
day = arr_dateText[0];
month = arr_dateText[1];
year = arr_dateText[2];
var mydate = new Date();
mydate.setFullYear(year, month-1, day);
var currdate = new Date();
var totalage = (currdate.getFullYear()) - (mydate.getFullYear());
if (totalage < 16){
$.validator.messages.check_date_of_birth = "Sorry, only persons over the age of 16 can be covered";
return false;
}
return true;
});
Run Code Online (Sandbox Code Playgroud) 我正在为客户工作一个小项目,数据库中的数据让我有点麻烦.我正在从数据库中填写付费分期付款的搜索表单.我可以把数据弄好,它的日期字段让我很烦.
每个分期的日期,月份和年份都有单独的字段.有没有办法可以使用CONCAT或DATE甚CAST至可以在组合字段上使用来搜索数据.
我尝试了以下内容
SELECT DATE_FORMAT( CONCAT( received_date, received_month, received_year ) , '%d/%m/%Y' ) FROM policy_installments
Run Code Online (Sandbox Code Playgroud)
和
SELECT DATE_FORMAT(STR_TO_DATE(CONCAT('pit.received_date', '-', 'pit.received_month','-', 'pit.received_year'), '%d-%m-%Y') AS mydate, '%d-%m-%Y') AS modate FROM policy_installments pit ORDER BY mydate
Run Code Online (Sandbox Code Playgroud)
和
SELECT * FROM policy_installments WHERE CONCAT(CAST(received_date AS CHAR),"-",CAST(received_month AS CHAR),"-",CAST(received_year AS CHAR)) >= '1-1-2014' AND CONCAT(CAST(received_date AS CHAR),"-",CAST(received_month AS CHAR),"-",CAST(received_year AS CHAR)) <= '31-3-2014'
Run Code Online (Sandbox Code Playgroud)
当我使用以下内容时,我会收到一些意外数据:
SELECT CONCAT_WS( received_date, "-", received_month, "-", received_year ) FROM policy_installments
Run Code Online (Sandbox Code Playgroud)
结果
2d313130312d3132303039
2d3237313032372d323732303039 etc etc …Run Code Online (Sandbox Code Playgroud) 我使用下面的代码减去两个日期
Dim OpenDate, ClosedDate As DateTime
dim Result as String
OpenDate = Convert.ToDateTime(some string contain date and time)
ClosedDate = Convert.ToDateTime(some string contain date and time)
Result = ClosedDate.Subtract(OpenDate).ToString
Run Code Online (Sandbox Code Playgroud)
它的格式正确,结果正常(day.hour:minute:second)
我需要的是什么
如果关闭和开放日期之间的期间包含星期五或星期六从结果中减去
防爆.如果结果9.03:02:10包含2周六和周五,则必须是6.03:02:10,依此类推
所以我有这个代码,这是为了抓住过去11个月的销售数据,包括当月,使它成为一整年.我需要做些什么才能将其更改为抓取过去12个月加上当月的数据?我知道我必须在右边改变一些东西(选择期间)......但不确定
在这一个中,左侧功能显示如何获得当前年份(2014年)减1给2013年..但我不明白正确的功能,2是什么意思?谢谢
period <= (
SELECT Period
FROM dbo.FiscalDates
WHERE (Date = CONVERT(varchar(10), GETDATE(), 102))) and period >= (
convert(varchar, left((
SELECT Period
FROM dbo.FiscalDates
WHERE (Date = CONVERT(varchar(10), GETDATE(), 102))),4)-1)+'-'+
convert(varchar, right((
SELECT Period
FROM dbo.FiscalDates
WHERE (Date = CONVERT(varchar(10), GETDATE(), 102))),2)))
group by prodnum, period, WhseNum
Run Code Online (Sandbox Code Playgroud) 我有这个简单的代码:
DateTimeFormatter format = DateTimeFormat.forPattern("YYYY MM DD");
DateTime dateTime;
String buffer = "2013 01 01";
dateTime = format.parseDateTime(buffer);
System.out.println(dateTime.getMonthOfYear());
buffer = "2013 02 01";
dateTime = format.parseDateTime(buffer);
System.out.println(dateTime.getMonthOfYear());
Run Code Online (Sandbox Code Playgroud)
输出为:1 1
但我希望:1 2
...问题出在哪儿?我不需要一年中的一个月,但我确定dayOfWeek有问题,因为dateTime始终是1月而不是其他月份.
在Android应用程序中,我尝试使用以下代码检索当前月份和年份.
setMonth(Calendar.getInstance().getTime().getMonth());
setYear(Calendar.getInstance().getTime().getYear());
System.out.println("MONTH sssssssssss:" + Month);
System.out.println("YEAR ssssssssssss:" + Year);
Run Code Online (Sandbox Code Playgroud)
输出是
04-20 16:36:43.723: I/System.out(4718): MONTH sssssssssss:3
04-20 16:36:43.723: I/System.out(4718): YEAR ssssssssssss:114
Run Code Online (Sandbox Code Playgroud)
有人可以帮我纠正一年的价值吗?
我目前的疑问是
$sql="SELECT * FROM events, times
WHERE events.email = '$email'
and
events.type = times.type";
Run Code Online (Sandbox Code Playgroud)
events.date是形式为yyyy-mm-dd的sql中的日期
times.time是sql中相同形式的日期,但是0000-mm-dd.
我希望我的查询中有一个额外的列,其中包含一个事件的建议开始日期.
即.events.date - times.time
我可以让sql返回包含推荐开始日期的额外列吗?
还是我离开了标记?
任何想法都表示赞赏.
编辑:
这就是我现在拥有的:
SELECT *, date_diff(events.date, times.time) AS recommended FROM events, times WHERE events.email = '$email' and events.type = times.type ORDER by events.date
Run Code Online (Sandbox Code Playgroud)
从我可以告诉它不应该失败,但确实如此.它抱怨我的语法.
编辑:
它现在正在工作,谢谢
这就是我所拥有的
$sql="SELECT *, date_format(events.date - times.time, '%Y-%m-%d') as recommended
FROM events, times
WHERE events.email = '$email'
and
events.type = times.type ORDER by events.date";
Run Code Online (Sandbox Code Playgroud) 我正在使用这个获得实际日期:
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
Calendar cal = Calendar.getInstance();
String today = dateFormat.format(cal.getTime());
System.out.println(today);
Run Code Online (Sandbox Code Playgroud)
它打印今天的日期:2014年4月21日
然后,我想比较这个日期是否在两个日期之间:
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
Date actualdate = sdf.parse(today);
Date date1 = sdf.parse("20.04.2014");
Date date2 = sdf.parse("23.04.2014");
Calendar actual = Calendar.getInstance();
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
actual.setTime(actualdate);
cal1.setTime(date1);
cal2.setTime(date2);
if(actual.after(date1) && actual.before(date2)) System.out.println("Yes");
else System.out.println("No");
Run Code Online (Sandbox Code Playgroud)
它始终打印否.问题是什么?当我将date1设置为21.04.2014并使用actual.equals(date1)时,它可以工作.但是当我在它之前或之后使用它时.谢谢