Para que nuestro componente nos ofrezca la funcionalidad de poder capturar tanto la fecha como la hora en nuestro control DateTimePicker, debemos aplicar en las siguientes dos propiedades los valores que te muestro a continuación (suponiendo que nuestro control se llama MiDateTimePicker):
Para hacer un between en Laravel utilizando Eloquententre un rango de fechas, lo podemos hacer de la siguiente manera:
//creams 2 objetos tipo carbon con las fechas
$f1 = new \Carbon\Carbon("01-01-2018");
$f2 = new \Carbon\Carbon("31-01-2018");
//aplicamos Eloquent
$lst=MiModelo::where("date_start",">=",$f1)
->where("date_end","<=",$f2)
->get();
Para obtener la diferencia en minutos de dos fechas haremos uso de Carbon una extensión de DateTime que viene incluida en Laravel la cual tiene muchísimas funcionalidades interesantes.
A continuación un ejemplo:
//convertimos la fecha 1 a objeto Carbon
$carbon1 = new \Carbon\Carbon("2018-01-01 00:00:00");
//convertimos la fecha 2 a objeto Carbon
$carbon2 = new \Carbon\Carbon("2018-02-02 00:00:00");
//de esta manera sacamos la diferencia en minutos
$minutesDiff=$carbon1->diffInMinutes($carbon2);
En este video te mostrare como contrarrestar los campos FieldSpecified creados en el primer video, poner el formato correcto de fecha, obtener la cadena original, obtener el campo certificado, poner los namespaces al xml, y por ultimo como sellar el xml con tu key.
Para ponerle el formato correcto para un xml que será timbrado con las reglas de cfdi 3.3, vamos a aplicar el formato a un DateTime de la siguiente forma:
//teniendo el dato en un DateTime en una variable llamada Fecha
string sFechaSAT= Fecha.ToString("yyyy-MM-ddTHH:mm:ss");
Así tu fecha tendrá el formato correcto para el timbrado.
Para obtener el primer día y ultima día del mes actual con C#, utilizaremos la funcionalidad de la clase DateTime.
Es muy útil conocer funcionalidad de este tipo, sobre todo cuando se hacen reportes y queremos que al entrar el usuario al módulo por defecto muestre solo lo del mes actual.
A continuación te muestro como hacerlo fácilmente:
//Primero obtenemos el día actual
DateTime date = DateTime.Now;
//Asi obtenemos el primer dia del mes actual
DateTime oPrimerDiaDelMes = new DateTime(date.Year, date.Month, 1);
//Y de la siguiente forma obtenemos el ultimo dia del mes
//agregamos 1 mes al objeto anterior y restamos 1 día.
DateTime oUltimoDiaDelMes = oPrimerDiaDelMes.Value.AddMonths(1).AddDays(-1);
Ya teniendo el primer dia del mes y el ultimo dia del mes actual en los dos objetos DateTime, ahora puedes hacer uso de ellos en algun componente, por ejemplo un DateTimePicker.
Para poder parsear el formato dd-mm-yy en c# .Net, el problema radica que en el año solo tenemos 2 dígitos, pero esto no impide que se pueda realizar de manera fácil, para hacerlo basta con utilizar el método ParseExact de DateTime de la siguiente forma:
DateTime fecha = DateTime.ParseExact("30-01-16", "dd-MM-yy", CultureInfo.InvariantCulture);
Por alguna circunstancia tenemos un TimeSpan y un DateTime y requerimos concatenarlos, es decir tenemos un TimeStam con la hora “13:30:00” y tenemos un DateTime con “2016-01-01 00:00:00”. Para ello tenemos que hacerlo de la siguiente forma:
DateTime fecha = DateTime.Parse("2016-01-01");
TimeSpan tiempo = TimeSpan.Parse("13:30:00");
DateTime fechaConcatenada = fecha.Value.Add(tiempo);
//fechaConcatenada = 2016-01-01 13:30:00